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

UptoLike

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

TranslateMessage( smsg );
DispatchMessage( smsg ) ;
}
Когда приложение будет готово завершить свою работу, желательно
выполнить набор обычных в таких случаях операций очистки, в том числе
вызвать функцию DestroyWindow,а затем - функцию UnregisterClass.
DestroyWindow( hwnd ) ;
UnregisterClass( szAppTitle, hInstance );
4. Рассмотреть реакцию приложений на сообщения.
Первая выполняемая
транзакция - это XTYP_CONNECT.
Поскольку уже были заданы параметры
фильтрации (посредством функции DdeInitialize), любые поступающие запросы
на подключение предназначены текущему DDE-приложению и могут быть
приняты путем возвращения значения TRUE.
case XTYP_CONNECT: return( TRUE ) ;
Кроме того, поскольку транзакции XTYP_WILDCONNECT
не
обрабатываются, попытки установить "обобщенные" подключения
автоматически завершатся неудачно.
При получении запроса XTYP_ADVSTART
выполняется операция
проверки, позволяющая обеим программам (клиенту и серверу) убедиться в
том, что соединение установлено именно с тем приложением и именно по той
теме, которые предполагались.
case XTYP_ADVSTART:
return( (UINT) wFmt == hFormat && hszItem == hszAppName );
Если какой-либо из аргументов не соответствует требованиям,
возвращается значение FALSE
и диалог прекращается. Транзакция
XTYP_REGISTER
уведомляет о появлении нового приложения; в ответ
обновляется список подключений hConvList и передается сообщение
XTYP_ADVSTART.
case XTYP_REGISTER:
hConvList = DdeConnectList( idInst, hszItem, hszAppName,
hConvList, NULL );
PostTransaction( NULL, 0, XTYP_ADVSTART );
UpdateWindow( hwnd ) ;
return ( TRUE ) ;
60
           TranslateMessage( smsg );
           DispatchMessage( smsg ) ;
     }

     Когда приложение будет готово завершить свою работу, желательно
выполнить набор обычных в таких случаях операций очистки, в том числе
вызвать функцию DestroyWindow,а затем - функцию UnregisterClass.

     DestroyWindow( hwnd ) ;
     UnregisterClass( szAppTitle, hInstance );

      4. Рассмотреть реакцию приложений на сообщения. Первая выполняемая
транзакция - это XTYP_CONNECT. Поскольку уже были заданы параметры
фильтрации (посредством функции DdeInitialize), любые поступающие запросы
на подключение предназначены текущему DDE-приложению и могут быть
приняты путем возвращения значения TRUE.

     case XTYP_CONNECT: return( TRUE ) ;

      Кроме того, поскольку транзакции XTYP_WILDCONNECT не
обрабатываются,    попытки     установить   "обобщенные"    подключения
автоматически завершатся неудачно.
      При получении запроса XTYP_ADVSTART выполняется операция
проверки, позволяющая обеим программам (клиенту и серверу) убедиться в
том, что соединение установлено именно с тем приложением и именно по той
теме, которые предполагались.

     case XTYP_ADVSTART:
           return( (UINT) wFmt == hFormat && hszItem == hszAppName );

      Если какой-либо из аргументов не соответствует требованиям,
возвращается значение FALSE и диалог прекращается. Транзакция
XTYP_REGISTER уведомляет о появлении нового приложения; в ответ
обновляется список подключений hConvList и передается сообщение
XTYP_ADVSTART.

     case XTYP_REGISTER:
            hConvList = DdeConnectList( idInst, hszItem, hszAppName,
                                  hConvList, NULL );
     PostTransaction( NULL, 0, XTYP_ADVSTART );
     UpdateWindow( hwnd ) ;
     return ( TRUE ) ;



                                       60