На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

Execute Transaction



A client can use the XTYP_EXECUTE transaction to cause a server to execute a command or a series of commands.

To execute a server command, the client first creates a buffer that contains a command string for the server to execute and then passes either a pointer to the buffer or a data handle identifying the buffer when it calls DdeClientTransaction. Other required parameters include the conversation handle, the item name string handle, the format specification, and the XTYP_EXECUTE transaction type. An application that creates a data handle for passing execute data must specify NULL for the hszItem parameter of the DdeCreateDataHandle function and zero for the uFmt parameter.

The DDEML passes the XTYP_EXECUTE transaction to the server's DDE callback function and specifies the format name, conversation handle, topic name, and data handle identifying the command string. If the server supports the command, it should use the DdeAccessData function to obtain a pointer to the command string, execute the command, and then return DDE_FACK. If the server does not support the command or cannot complete the transaction, it should return DDE_FNOTPROCESSED. The server should return DDE_FBUSY if it is too busy to complete the transaction.

In general, a server's callback function should process the XTYP_EXECUTE transaction before returning with the following exceptions:

1. When the command passed with the XTYP_EXECUTE transaction requests the server to terminate, the server should not terminate until its callback function returns from processing XTYP_EXECUTE.
2. If the server must perform an operation, such as processing a dialog box or a DDE transaction that might cause DDEML recursion problems, the server should return the CBR_BLOCK return code to block the execute transaction, perform the operation, and then resume processing the execute transaction.



When DdeClientTransaction returns, the client can use the lpdwResult parameter to access the transaction status flag. If the flag is DDE_FBUSY, the client should send the transaction again later.
If a server does not support the XTYP_EXECUTE transaction, it should specify the CBF_FAIL_EXECUTES filter flag in the DdeInitialize function. Doing so prevents the DDEML from sending the transaction to the server.


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

Сделка Execute



Клиент может использовать сделку XTYP_EXECUTE, чтобы вызывать сервер, чтобы выполнять команду или серия команд.

Для того, чтобы выполнять команду сервера, клиент сначала создает буфер, который содержит командную строку для сервера, чтобы выполнять и затем передает или указатель в буфер или ручка данных, опознающие буфер когда это называет DdeClientTransaction. Другие необходимые параметры включают ручку разговора, ручка строки имени пункта, спецификация формата, и тип сделки XTYP_EXECUTE. Приложение, которое создает ручку данных для прохождения выполнять данные должно определить НЕДЕЙСТВИТЕЛЬНЫЙ для параметра hszItem функции DdeCreateDataHandle и нуль для параметра uFmt.

DDEML Передает сделку XTYP_EXECUTE в функцию возврата сервера DDE и определяет имя формата, ручки разговора, имени темы, и ручку данных, опознающие командную строку. Если сервер поддерживает команду, он должен использовать функцию DdeAccessData, чтобы получать указатель в командную строку, выполните команду, и тогда возвращайте DDE_FACK. Если сервер не поддерживает команду или не мочь завершить сделку, это должно возвращать DDE_FNOTPROCESSED. Сервер должен возвращать DDE_FBUSY если он слишком занятый, чтобы завершать сделку.

В общих чертах, функция возврата сервера должна обрабатывать сделку XTYP_EXECUTE перед возвратом с следующими исключениями:

1. Когда команда пройденная сделкой XTYP_EXECUTE запрашивает сервер, чтобы завершаться, сервер не должен завершаться пока функция возврата не возвращается с обработки XTYP_EXECUTE.
2. Если сервер должен выполнить операцию, как например, обработка диалогового блока или сделка DDE, которые могли вызвать проблемы рекурсии DDEML, сервер должен возвращать обратный код CBR_BLOCK, чтобы блокировать выполнять сделку, выполнять операцию, и тогда продолжитесь обрабатывая выполнять сделку.



Когда возврат DdeClientTransaction, клиент может использовать параметр lpdwResult, чтобы иметь доступ к флагу статуса сделки. Если флаг - DDE_FBUSY, клиент должен послать сделку снова позже.
Если сервер не поддерживает сделку XTYP_EXECUTE, это должно определить флаг фильтра CBF_FAIL_EXECUTES в функции DdeInitialize. Делая так мешает DDEML чтобы посылать сделку в сервер.


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz