IPipeByte interface

Transfers data of the byte type (which is 8 bits wide).

When to implement

The provider of the pipe source is responsible for implementing this interface. COM provides only the proxy implementation, allowing it to optimize the use of asynchronous calls.

When to use

You can use the IPipeByte interface to asynchronously transfer data of the byte type. This is especially helpful for transfering large quantities of data or data that is generated incrementally.

With IPipeByte, you can intersperse calls to the Pull and Push methods. It is not necessary to complete all the Pull operations before calling the Push method.

One of the ways to use IPipeByte is in a consumer/provider scenario. For example, server P (the provider) receives a call to Pull from client A. If it doesn't already have the data requested by client A, server P can wait for a call to Push from client C.


The IPipeByte interface inherits from the IUnknown interface. IPipeByte also has these types of members:


The IPipeByte interface has these methods.


Retrieves data of the byte type from the pipe source.


Sends data of the byte type to the pipe source.



The IPipeByte, IPipeDouble, and IPipeLong interfaces are similar to the standard DCE/RPC pipes. However, the COM implementation of pipes offers more flexibility. With the COM implementation, the basic idea is that the pipe is simply another interface with two methods: Pull and Push. This results in three main benefits:

  • A COM pipe is another interface, so it can be received as an out parameter from a method call and then either Pull or Push can be called.
  • There are no restrictions on when to call the Pull and Push methods, so a pipe is in reality bidirectional.
  • Pipes are interfaces, so the method calls can be asynchronous and follow those rules.

For more information, see Pipes in the RPC documentation.


Minimum supported client

Windows 2000 Professional [desktop apps only]

Minimum supported server

Windows 2000 Server [desktop apps only]






IID_IPipeByte is defined as DB2F3ACB-2F86-11d1-8E04-00C04FB9989A

See also