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

UptoLike

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

case WM_COMMAND:
switch( LOWORDt wParam ) )
{
case IDG_RESUME:
PostTransaction( "RESUME", 7, XTYP_EXECUTE );
// не прекращая выполнения, переходим к следующей операции
case IDL_RESUME:
ResumeAutomatic( hwnd. );
break;
case IDG_PAUSE:
PostTransaction( "PAUSE", 6, XTYP_EXECUTE );
//не прекращая выполнения, переходим к следующей операции
case IDL_PAUSE:
PauseAutomatic( hwnd ) ;
break;
}
break;
Локальная функция PostTransaction вызывается с тремя параметрами.
pScr - Указатель на командную строку.
cbData - Длина командной строки.
xtyp - Тип транзакции.
VOID PostTransaction( PBYTE pSrc, DWORD cbData, UIMT xtyp )
{
HCONV hConv;
DWORD dwResult;
int iCheck =0;
Переменная hConv содержит дескриптор диалога. Целочисленное
значение iCheck служит для проверки того, были ли
установлены новые
подключения, и, если это так, чтобы дать возможность локальному экземпляру
обновить свое окно. Цикл проверки подключений в целом идентичен циклу,
выполнявшемуся при получении сообщения WM_PAINT,
но между ними
имеются отличия. В данной ситуации вызывается API-функция
DdeClientTransaction, в качестве аргументов которой указываются команда,
длина команды, имя приложения (идентификатор), формат данных, тип
транзакции, а также инструкция TIMEOUT_ASYNC,
свидетельствующая о том,
что эта транзакция является асинхронной. Для синхронной транзакции вместо
последнего аргумента следует указать время ожидания, выраженное в
миллисекундах.
Далее в переменную dwResult записывается результат транзакции. Для
разрыва диалога вызывается функция DdeAbandonTransaction.
65
       case WM_COMMAND:
             switch( LOWORDt wParam ) )
             {
                    case IDG_RESUME:
                          PostTransaction( "RESUME", 7, XTYP_EXECUTE );
// не прекращая выполнения, переходим к следующей операции
                    case IDL_RESUME:
                          ResumeAutomatic( hwnd. );
                          break;
                    case IDG_PAUSE:
                          PostTransaction( "PAUSE", 6, XTYP_EXECUTE );
//не прекращая выполнения, переходим к следующей операции
                    case IDL_PAUSE:
                          PauseAutomatic( hwnd ) ;
                          break;
             }
             break;

       Локальная функция PostTransaction вызывается с тремя параметрами.
pScr - Указатель на командную строку.
cbData - Длина командной строки.
xtyp - Тип транзакции.

VOID PostTransaction( PBYTE pSrc, DWORD cbData, UIMT xtyp )
{
    HCONV hConv;
    DWORD dwResult;
    int iCheck =0;

      Переменная hConv содержит дескриптор диалога. Целочисленное
значение iCheck служит для проверки того, были ли установлены новые
подключения, и, если это так, чтобы дать возможность локальному экземпляру
обновить свое окно. Цикл проверки подключений в целом идентичен циклу,
выполнявшемуся при получении сообщения WM_PAINT, но между ними
имеются отличия. В данной ситуации вызывается API-функция
DdeClientTransaction, в качестве аргументов которой указываются команда,
длина команды, имя приложения (идентификатор), формат данных, тип
транзакции, а также инструкция TIMEOUT_ASYNC, свидетельствующая о том,
что эта транзакция является асинхронной. Для синхронной транзакции вместо
последнего аргумента следует указать время ожидания, выраженное в
миллисекундах.
      Далее в переменную dwResult записывается результат транзакции. Для
разрыва диалога вызывается функция DdeAbandonTransaction.

                                     65