Сейчас SetupListV0003.odc  более правильно организован, чем клиент, там было обсуждение по улучшению кода.
WinApi понадобился для
## Код:
```
PROCEDURE ProcessMessages;
   VAR msg: Win.MSG; res: INTEGER;
BEGIN
   WHILE Win.PeekMessage(msg, 0, 0, 0, Win.PM_REMOVE) # 0 DO
      res := Win.TranslateMessage(msg);
      res := Win.DispatchMessageA(msg)
   END
END ProcessMessages;
```
Который используется в
## Код:
```
...
   WHILE ~ stream.r.ready DO
      ProcessMessages
   END;
   stream.s.Close();
   RETURN stream.r.result
```
Сейчас в  SetupListV0003.odc  все совсем подругому организованно, через Services.Action
Но такой вариант тоже может оказаться полезным, поскольку так (с WHILE) сохраняется последовательность выполнения программы и не нужно выдумывать ничего с синхронизацией.