Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

RealProxy::GetCOMIUnknown Method

Requests an unmanaged reference to the object represented by the current proxy instance.

Namespace:  System.Runtime.Remoting.Proxies
Assembly:  mscorlib (in mscorlib.dll)

public:
virtual IntPtr GetCOMIUnknown(
	bool fIsMarshalled
)

Parameters

fIsMarshalled
Type: System::Boolean

true if the object reference is requested for marshaling to a remote location; false if the object reference is requested for communication with unmanaged objects in the current process through COM.

Return Value

Type: System::IntPtr
A pointer to a COM Callable Wrapper if the object reference is requested for communication with unmanaged objects in the current process through COM, or a pointer to a cached or newly generated IUnknown COM interface if the object reference is requested for marshaling to a remote location.

If the proxy is requested for marshaling, then an IUnknown interface for the object represented by the current proxy instance is returned. If an IUnknown was previously cached by the SetCOMIUnknown method, then that instance is returned; otherwise, a new instance is returned.

If the proxy is requested not for marshaling but for communication with unmanaged objects in the current process, then a COM Callable Wrapper (CCW), which can be used in the current process for communication through COM, is returned.

[SecurityPermission(SecurityAction::LinkDemand, Flags = SecurityPermissionFlag::Infrastructure)]
IntPtr SupportsInterface( Guid * /*myGuid*/ )
{
   Console::WriteLine( "SupportsInterface method called" );

   // Object reference is requested for communication with unmanaged objects 
   // in the current process through COM.
   IntPtr myIntPtr = this->GetCOMIUnknown( false );

   // Stores an unmanaged proxy of the object. 
   this->SetCOMIUnknown( myIntPtr );

   // return COM Runtime Wrapper pointer. 
   return myIntPtr;
}

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Show:
© 2015 Microsoft