Операционные системы. Марапулец Ю.В. - 64 стр.

UptoLike

Составители: 

Получив дескриптор диалога, с помощью функции DdeQueryNextServer
можно запросить самую последнюю версию имеющихся данных.
Закончив чтение данных, снова вызвать функцию DdeQueryNextServer, на
этот раз используя в качестве аргумента дескриптор текущего диалога. В
результате возвращается дескриптор следующего диалога в списке. Цикл
продолжается до тех пор, пока список не завершится.
hConv = DdeQueryNextServer( hConvList, hConv );
}
}
Перед закрытием приложения всегда выдается сообщение WM_CLOSE,
ответом на которое обычно является вызов функции PostQuitMessage,
завершающей работу программы. Далее необходимо закрыть DDE-соединения,
а также об уничтожить локальный таймер.
case WM_CLOSE:
KillTimer( hwnd, TRUE ) ;
DdeDisconnectList( hConvList );
DdeNameService( idlnst, 0, 0, DNS_UNREGISTER ) ;
DdeFreeStringHandle( idInst, hszAppName );
DdeUninitialize( idInst );
PostQuitMessage( FALSE );
break;
Последовательность действий здесь такова: прежде всего нужно
разорвать связь, затем отменить регистрацию имени сервиса и освободить
строковый дескриптор, а затем отменить инициализацию DDE-подключения.
После выполнения всех этих операций приложение готово к завершению
работы.
6. Рассмотреть дополнительные операции в процедуре WndProc.
Наряду с
операциями, непосредственно связанными с DDE, в процедуре WndProc
происходит также обработка сообщений меню. В программе имеется два
подменю, Local и Global. В каждом из них содержится по две команды,
Resume и Pause. Команды меню Local инструктируют локальный экземпляр
приложения о необходимости либо возобновить работу в автоматическом
режиме, либо приостановить ее вообще.
Команды меню Global передают управление соответствующим
локальным командам, однако перед этим осуществляют широковещательную
передачу сообщений другим участникам диалога, инструктируя их о
необходимости либо возобновить работу, либо приостановить ее. Эта задача
выполняется с помощью функции Post-Transaction:
64
      Получив дескриптор диалога, с помощью функции DdeQueryNextServer
можно запросить самую последнюю версию имеющихся данных.
      Закончив чтение данных, снова вызвать функцию DdeQueryNextServer, на
этот раз используя в качестве аргумента дескриптор текущего диалога. В
результате возвращается дескриптор следующего диалога в списке. Цикл
продолжается до тех пор, пока список не завершится.

                      hConv = DdeQueryNextServer( hConvList, hConv );
                }
           }

      Перед закрытием приложения всегда выдается сообщение WM_CLOSE,
ответом на которое обычно является вызов функции PostQuitMessage,
завершающей работу программы. Далее необходимо закрыть DDE-соединения,
а также об уничтожить локальный таймер.

     case WM_CLOSE:
           KillTimer( hwnd, TRUE ) ;
           DdeDisconnectList( hConvList );
           DdeNameService( idlnst, 0, 0, DNS_UNREGISTER ) ;
           DdeFreeStringHandle( idInst, hszAppName );
           DdeUninitialize( idInst );
           PostQuitMessage( FALSE );
           break;

     Последовательность действий здесь такова: прежде всего нужно
разорвать связь, затем отменить регистрацию имени сервиса и освободить
строковый дескриптор, а затем отменить инициализацию DDE-подключения.
После выполнения всех этих операций приложение готово к завершению
работы.
     6. Рассмотреть дополнительные операции в процедуре WndProc. Наряду с
операциями, непосредственно связанными с DDE, в процедуре WndProc
происходит также обработка сообщений меню. В программе имеется два
подменю, Local и Global. В каждом из них содержится по две команды,
Resume и Pause. Команды меню Local инструктируют локальный экземпляр
приложения о необходимости либо возобновить работу в автоматическом
режиме, либо приостановить ее вообще.

     Команды меню Global передают управление соответствующим
локальным командам, однако перед этим осуществляют широковещательную
передачу сообщений другим участникам диалога, инструктируя их о
необходимости либо возобновить работу, либо приостановить ее. Эта задача
выполняется с помощью функции Post-Transaction:

                                    64