您的位置:寻梦网首页编程乐园VB 编程VB API 指南
TransactNamedPipe
VB声明
Declare Function TransactNamedPipe Lib "kernel32" Alias "TransactNamedPipe" (ByVal hNamedPipe As Long, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesRead As Long, lpOverlapped As OVERLAPPED) As Long
说明
该函数在单独一个函数中同时合并了对管道的读、写操作。客户和服务器进程都可用它
返回值
Long,如操作已结束,则返回TRUE(非零);否则返回零。在异步模式中,GetLastError会设置成ERROR_IO_PENDING,而且操作会继续在后台进行。可测试lpOverlapped结构中的事件对象,了解操作是否结束
参数表
参数 类型及说明
hNamedPipe Long,指定一个消息类型的命名管道的句柄
lpInBuffer Any,指定一个内存缓冲区,在其中包含要写入管道的数据
nInBufferSize Long,指定lpInBuffer缓冲区中的字节数量
lpOutBuffer Any,指定一个内存缓冲区,用于装载从管道中读入的数据
nOutBufferSize Long,用于装载来自管道的数据
lpBytesRead Long,指定要从管道读入的字节数量。会读入单条消息。如由于lpOutBuffer不够大,不能容下完整的消息,那么函数会返回FALSE,而且GetLastError会设为ERROR_MORE_DATA(消息中剩下的所有字节都会丢失)
lpOverlapped OVERLAPPED,可以为NULL(变成ByVal As Long,并传递零值),或指定包含了一个事件对象的OVERLAPPED结构
注解

如lpOverlapped设为NULL,或者句柄没有创建成FILE_FLAG_OVERLAPPED样式,那么除非读和写操作都完成,否则函数不会返回