Marshal::QueryInterface Method (IntPtr, Guid%, IntPtr%)
Requests a pointer to a specified interface from a COM object.
Assembly: mscorlib (in mscorlib.dll)
public: [SecurityCriticalAttribute] static int QueryInterface( IntPtr pUnk, Guid% iid, [OutAttribute] IntPtr% ppv )
Parameters
- pUnk
-
Type:
System::IntPtr
The interface to be queried.
- iid
-
Type:
System::Guid%
The interface identifier (IID) of the requested interface.
- ppv
-
Type:
System::IntPtr%
When this method returns, contains a reference to the returned interface.
The QueryInterface method exposes the IUnknown::QueryInterface method of a COM object, which attempts to obtain a specific interface pointer. Using QueryInterface on a COM object is the same as performing a cast operation in managed code. Calling an object with this method causes the reference count to increment on the interface pointer before the pointer is returned. Always use Marshal::Release to decrement the reference count once you have finished with the pointer. To obtain an IntPtr value that represents a IUnknown interface pointer, you can call Marshal::GetComInterfaceForObject, Marshal::GetIUnknownForObject, or Marshal::GetIDispatchForObject.
requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1