DdeClientTransaction 函式 (ddeml.h)
開始客戶端與伺服器之間的數據交易。 只有動態數據交換 (DDE) 用戶端應用程式可以呼叫此函式,而且應用程式只能在與伺服器建立交談之後使用。
語法
HDDEDATA DdeClientTransaction(
[in, optional] LPBYTE pData,
[in] DWORD cbData,
[in] HCONV hConv,
[in, optional] HSZ hszItem,
[in] UINT wFmt,
[in] UINT wType,
[in] DWORD dwTimeout,
[out, optional] LPDWORD pdwResult
);
參數
[in, optional] pData
類型: LPBYTE
用戶端必須傳遞至伺服器的數據開頭。
或者,應用程式可以指定要傳遞至伺服器的 HDDEDATA (數據處理) ,在此情況下, cbData 參數應設定為 -1。 只有在 wType 參數 XTYP_EXECUTE 或 XTYP_POKE時,才需要此參數。 否則,此參數應該是 NULL。
針對此參數的選擇性用法, XTYP_POKEpData 是數據處理端的交易,句柄必須由 先前呼叫 DdeCreateDataHandle 函式所建立,並採用 wFmt 參數中指定的相同數據格式。
[in] cbData
類型: DWORD
pData 參數所指向之數據的長度,以位元組為單位,如果數據是字串,則包括終止 NULL。 值 -1 表示 pData 是識別所傳送數據的數據處理句柄。
[in] hConv
類型: HCONV
要在其中進行交易之交談的句柄。
[in, optional] hszItem
類型: HSZ
交易期間要交換數據之數據項的句柄。 此句柄必須由 先前呼叫 DdeCreateStringHandle 函式所建立。 此參數會忽略 (,如果 wType 參數XTYP_EXECUTE,則應該設定為 0L ) 。
[in] wFmt
類型: UINT
要提交或要求數據項的標準剪貼簿格式。
如果 wType 參數指定的交易未傳遞數據或 XTYP_EXECUTE,則此參數應該是零。
如果 wType 參數指定的交易參考非執行 DDE 數據 ( XTYP_POKE、XTYP_ADVSTART、XTYP_ADVSTOP、XTYP_REQUEST) ,則 wFmt 值必須是有效的預先定義 (CF_) DDE 格式或有效的已註冊剪貼簿格式。
[in] wType
類型: UINT
交易類型。 此參數可以是下列其中一個值。
值 | 意義 |
---|---|
|
開始建議迴圈。 交談中可以存在任意數目的相異建議迴圈。 應用程式可以藉由將 XTYP_ADVSTART 交易類型與下列一或多個旗標結合,來改變建議迴圈類型:
|
|
結束建議迴圈。 |
|
開始執行交易。 |
|
開始擷取交易。 |
|
開始要求交易。 |
[in] dwTimeout
類型: DWORD
用戶端在同步交易中等候伺服器應用程式回應的最大時間量,以毫秒為單位。 這個參數應該 TIMEOUT_ASYNC 異步交易。
[out, optional] pdwResult
類型: LPDWORD
接收交易結果之變數的指標。 未檢查結果的應用程式可以針對此值使用 NULL 。 對於同步交易,此變數的低序字包含交易所產生的任何適用DDE_旗標。 這可支援相依於 DDE_APPSTATUS 位的應用程式。 不過,建議應用程式不再使用這些位,因為未來版本的 動態數據交換管理連結庫 (DDEML) 可能不支持這些位。 對於異步交易,此變數會填入唯一的交易標識符,以搭配 DdeAbandonTransaction 函式和 XTYP_XACT_COMPLETE 交易使用。
傳回值
類型: HDDEDATA
如果函式成功,則傳回值是一個數據句柄,可識別客戶端預期來自伺服器之數據的成功同步交易數據。 針對成功的異步交易,以及用戶端不預期數據的同步交易,傳回值為非零。 所有未成功交易的傳回值都是零。
DdeGetLastError 函式可用來取得錯誤碼,它可以是下列其中一個值:
備註
當應用程式使用 DdeClientTransaction 傳回的數據句柄完成時,應用程式應該呼叫 DdeFreeDataHandle 函式來釋放句柄。
交易可以是同步或異步的。 在同步交易期間, DdeClientTransaction 不會在交易成功完成或失敗之前傳回。 同步交易會導致用戶端在等候各種異步事件時進入強制回應迴圈。 因此,用戶端應用程式仍然可以在等候同步交易時回應使用者輸入,但應用程式因為與第一個交易相關聯的活動而無法開始第二個同步交易。 如果相同工作的任何實例已經進行同步交易,DdeClientTransaction 就會失敗。
在異步交易期間, DdeClientTransaction 會在交易開始之後傳回,並傳遞交易標識碼以供參考。 當伺服器的 DDE 回呼函式完成處理異步交易時,系統會將 XTYP_XACT_COMPLETE 交易傳送給用戶端。 此交易會提供用戶端呼叫 DdeClientTransaction 所起始的異步交易結果。 用戶端應用程式可以選擇藉由呼叫 DdeAbandonTransaction 函式來放棄異步交易。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | ddeml.h (包含 Windows.h) |
程式庫 | User32.lib |
Dll | User32.dll |
另請參閱
概念
參考