/****************************************************************************
   Пример программы на C-- использующей вызовы API-процедур Windows.
   Программа компилируется компилятором C-- v0.217+ с ключом /w32.
****************************************************************************/
//?jumptomain NONE
#define _WINBASE_ TRUE
?include "windows.h--"
#include "first.rc"

?define SIZENAME 0x10

// Variables
byte Text="You are pleased, ";
byte Name[SIZENAME]=0;

main()
{
  GetModuleHandleA(0);    //get handle to application instance
  DialogBoxParamA(EAX,DlgBox,0,#DlgBoxProc,EAX); //create dialog box
  ExitProcess(0);        //close task
}

// Dialog box procedure
dword DlgBoxProc(dword  hdlg,wmsg,wparam,lparam)
{
  EAX=wmsg;
  IF(AX==WM_INITDIALOG){       // WM_INITDIALOG message?
INIT:
    GetDlgItem(hdlg,IDC_NAME); // get handle of edit control
    SetFocus(EAX);             // and set there focus
  }
  ELSE IF(AX==WM_COMMAND){     // WM_COMMAND message?
    EAX=wparam;
    IF(AX==IDOK){              // pressed "Ok" button?
      GetDlgItemTextA(hdlg,IDC_NAME,#Name-1,SIZENAME);
      IF(EAX==0)GOTO INIT;     // ничего не введено - повтор запроса
      FOR(ESI=#Name;DSBYTE[ESI]!=0;ESI++);  //поиск конца имени
      DSWORD[ESI]='? ';        // добавить знак ?
      MessageBoxA(0,#Text,
        "It is the first program written under Windows on C --",
        MB_ICONASTERISK); //Вывести инф. окно
      GOTO EN;
    }
    IF(AX==IDCANCEL){           // pressed "x" or "Cancel"?
EN:
      EndDialog(hdlg,0);
    }
  }
  EAX=0;
}
