This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for

This interface enables a client to query an object proxy, or handler, for multiple interfaces, using a single RPC call.

By using this interface, instead of relying on separate calls to QueryInterface, clients can reduce the number of RPC calls that have to cross thread, process, or machine boundaries and, therefore, the amount of time required to obtain the requested interface pointers.

When to Implement

You never have to implement this interface because there is no situation in which it is required. COM server applications that rely on COM's standard remoting support get the interface for free because COM implements it on every object proxy.

The only situation in which you might want to implement this interface yourself is if you are writing a custom marshaler that handles interface remoting. Even here, implementing IMultiQIyourself is not recommended, particularly if your object is aggregatable.

When to Use

When more than one interface pointer is sought, client applications should QueryInterfacefor IMultiQIand use it if available.

Methods in Vtable Order

IUnknown method Description


Returns pointers to supported interfaces.


Increments the reference count.


Decrements the reference count.

Method Description


Queries for multiple interfaces.


To determine whether the platform supports this interface, see Determining Supported COM APIs.


Header objidl.h, objidl.idl
Library ole32.lib, uuid.lib
Windows Embedded CE Windows CE 3.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also