CHANNEL_OPEN_EVENT_FN回呼函式 (cchannel.h)
遠端桌面服務會呼叫的應用程式定義回呼函式,以通知用戶端 DLL 特定虛擬通道的事件。
PCHANNEL_OPEN_EVENT_FN類型會定義這個回呼函式的指標。 VirtualChannelOpenEvent 是應用程式定義或連結庫定義函數名稱的佔位符。
語法
CHANNEL_OPEN_EVENT_FN ChannelOpenEventFn;
VOID VCAPITYPE ChannelOpenEventFn(
[in] DWORD openHandle,
[in] UINT event,
[in] LPVOID pData,
[in] UINT32 dataLength,
[in] UINT32 totalLength,
[in] UINT32 dataFlags
)
{...}
參數
[in] openHandle
虛擬通道的句柄。 這是 VirtualChannelOpen 函式的 pOpenHandle 參數中所傳回的句柄。
[in] event
指出造成通知的事件。 此參數可以是下列其中一個值。
CHANNEL_EVENT_DATA_RECEIVED
虛擬通道從伺服器端接收資料。 pData 是數據區塊的指標。 dataLength 表示此區塊的大小。 totalLength 表示伺服器寫入的數據大小總計。
CHANNEL_EVENT_WRITE_CANCELLED
VirtualChannelWrite 呼叫所啟動的寫入作業已取消。 pData 是在 VirtualChannelWrite 的 pUserData 參數中指定的值。
當用戶端會話中斷連線時,就會取消寫入作業。 此通知可讓您釋放與寫入作業相關聯的任何記憶體。
CHANNEL_EVENT_WRITE_COMPLETE
VirtualChannelWrite 呼叫所啟動的寫入作業已完成。 pData 是在 VirtualChannelWrite 的 pUserData 參數中指定的值。
[in] pData
事件之其他數據的指標。 數據類型取決於事件,如先前在事件描述中所述。
如果事件CHANNEL_EVENT_DATA_RECEIVED,伺服器所寫入的數據會分成不超過CHANNEL_CHUNK_LENGTH個字節的區塊。 dataFlags 參數會指出目前的區塊位於伺服器所寫入數據的區塊開頭、中間或結尾。
請注意,此參數的大小可以大於 dataLength 參數所指定的值。 應用程式應該只讀取 dataLength 指定的位元元組數目。
[in] dataLength
指定 pData 緩衝區中數據的大小,以位元組為單位。
[in] totalLength
指定由單一寫入作業寫入至虛擬通道伺服器端的數據大小總計,以位元組為單位。
[in] dataFlags
提供在 CHANNEL_EVENT_DATA_RECEIVED 事件中接收之數據區塊的相關信息。 將會設定下列位旗標。
請注意,在比較下列清單中的值時,您不應該使用 '==' 運算符進行直接比較;請改用所述的比較方法。
CHANNEL_FLAG_FIRST
區塊是單一寫入作業所寫入數據的開頭。
比較此旗標時,請使用位比較。
CHANNEL_FLAG_LAST
區塊是由單一寫入作業所寫入的數據結尾。
比較此旗標時,請使用位比較。
CHANNEL_FLAG_MIDDLE
此為預設值。 區塊位於單一寫入作業所寫入數據的區塊中間。
請勿使用位比較來直接比較此旗標值。 請改用位比較來判斷旗標值不是 CHANNEL_FLAG_FIRST 或 CHANNEL_FLAG_LAST。 這是使用下列比較來完成的: Result = !(flags & CHANNEL_FLAG_FIRST) && !(flags & CHANNEL_FLAG_LAST)
。
CHANNEL_FLAG_ONLY
結合 CHANNEL_FLAG_FIRST 和 CHANNEL_FLAG_LAST 值。 區塊包含來自單一寫入作業的所有數據。
比較此旗標時,請使用位比較。
傳回值
此函式沒有傳回值。
備註
用戶端 DLL 會使用 VirtualChannelOpen 函式來註冊特定虛擬通道的 VirtualChannelOpenEvent 函式。
您可以使用相同的 VirtualChannelOpenEvent 函式來呼叫 VirtualChannelOpen。
在執行時,可以使用不同的事件類型呼叫此函式。 例如,在處理CHANNEL_EVENT_DATA_RECEIVED事件時,可能會使用 CHANNEL_EVENT_WRITE_COMPLETE 或 CHANNEL_EVENT_WRITE_CANCELLED 呼叫它。 請注意,此函式不會與目前正在處理的相同事件類型呼叫。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista |
最低支援的伺服器 | Windows Server 2008 |
目標平台 | Windows |
標頭 | cchannel.h |