IPipeLong interface

Transfers data of the long integer type (which is 32 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

A caller can use the IPipeLong interface to asynchronously transfer data of the long integer type. This is especially helpful for transfering large quantities of data or data that is generated incrementally.

With the IPipeLong interface, 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 IPipeLong 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 IPipeLong interface inherits from the IUnknown interface. IPipeLong also has these types of members:


The IPipeLong interface has these methods.


Retrieves data of the long integer type from the pipe source.


Sends data of the long integer 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_IPipeLong is defined as DB2F3ACD-2F86-11d1-8E04-00C04FB9989A

See also