CHttpServerContext::TransmitFile

BOOL TransmitFile( HANDLE hFile,
                   DWORD dwFlags = HSE_IO_DISCONNECT_AFTER_SEND,
                   LPVOID pstrHeader = NULL,
                   DWORD dwHeaderLen = 0,
                   LPVOID pstrTrailer = NULL,
                   DWORD dwTrailerLen = 0
                 );

返回值:
如果文件数据已发送,则为TRUE,否则为FALSE。要得到扩展的错误信息,请调用GetLastError。如果一个I/O操作在TransmitFile返回前未完成,函数返回FALSE。此时,GetLastError返回ERROR_IO_PENDING。

参数:
hFile对包含传送数据的文件的处理。此文件必须已用FILE_FLAG_SEQUENTIAL_SCAN和FILE_FLAG_OVERLAPPED打开过。
dwFlags与文件相关的属性。缺省为HSE_IO_DISCONNECT_AFTER_SEND。请参阅联机文档“平台SDK”中的ServerSupportFunction, 以了解可能的属性的列表。
pstrHeader一个指向包含传送文件数据前的标题的字符串的指针。此标题将发送的数据类型及其应如何显示的信息传给接收浏览器。如果为NULL,则标题未发送。
dwHeaderLen标题长度。缺省为0,pPstrHeader不为NULL,而dwHeaderLen为0,此函数将使用Win32的函数Istrlen来查找尾串长(此时,必须为空终止字符串)。
pstrTrailer一个指向包含传送完文件数据后的调试字符串的指针。如果为NULL,尾串未发送。
dwTrailerLen尾串长。缺省为0。如果pstrTrailer不为NULL,而dwTrailerLen为0,此函数将使用Win32的函数Istrlen来查找调试串(此时,必须为空终止字符串)。

说明:
调用此成员函数来传送一个文件给请求者。此成员函数执行操作Server-SupportFunction命令标记HSE_REQ_TRANSMIT_FILE。服务器异步执行此操作。服务器提交此操作到其内部I/O队列并返回给调用者。MFC改变上下文对象来返回HSE_STATUS_PENDING,并在调用指示I/O完成时使用HSE_DONE_WITH_SESSION。MFC 还将上下文对象的m_bSendHeaders设置为FALSE,因为被自动发送。

请参阅:CHttpFilterContext::ServerSupportFunction