Marshal.GetObjectForIUnknown(IntPtr) 메서드

정의

IUnknown 인터페이스에 대한 포인터를 사용하여 COM 개체를 나타내는 형식의 인스턴스를 반환합니다.Returns an instance of a type that represents a COM object by a pointer to its IUnknown interface.

public:
 static System::Object ^ GetObjectForIUnknown(IntPtr pUnk);
[System.Security.SecurityCritical]
public static object GetObjectForIUnknown (IntPtr pUnk);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static object GetObjectForIUnknown (IntPtr pUnk);
public static object GetObjectForIUnknown (IntPtr pUnk);
[<System.Security.SecurityCritical>]
static member GetObjectForIUnknown : nativeint -> obj
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member GetObjectForIUnknown : nativeint -> obj
static member GetObjectForIUnknown : nativeint -> obj
Public Shared Function GetObjectForIUnknown (pUnk As IntPtr) As Object

매개 변수

pUnk
IntPtr

IUnknown 인터페이스에 대한 포인터입니다.A pointer to the IUnknown interface.

반환

Object

지정된 관리되지 않는 COM 개체를 나타내는 개체입니다.An object that represents the specified unmanaged COM object.

특성

예외

pUnk이(가) Zero인 경우pUnk is Zero.

설명

이 메서드는 IUnknown 관리 되는 개체를 래핑합니다.This method wraps IUnknown in a managed object. 이는 COM 구성 요소의 참조 횟수를 증가 시키는 효과를 가집니다.This has the effect of incrementing the reference count of the COM component. 런타임이 COM 개체를 나타내는 관리 되는 개체에 대해 가비지 수집을 수행 하는 경우 참조 횟수가 감소 됩니다.The reference count will be decremented when the runtime performs garbage collection on the managed object that represents the COM object.

pUnk매개 변수는 IUnknown 인터페이스 포인터를 나타내지만 모든 com 인터페이스가에서 직접 또는 간접적으로 파생 되므로 모든 IUnknown com 인터페이스를이 메서드에 전달할 수 있습니다.The pUnk parameter represents an IUnknown interface pointer; however, because all COM interfaces derive directly or indirectly from IUnknown, you can pass any COM interface to this method. 에서 반환 되는 개체는 GetObjectForIUnknown 공용 언어 런타임에서 관리 되는 다른 개체를 사용할 때 관리 하는 런타임 호출 가능 래퍼입니다.The object returned by GetObjectForIUnknown is a Runtime Callable Wrapper, which the common language runtime manages as it does any other managed object. 이 래퍼의 형식은 일반적으로 System.__ComObject 래퍼 형식이 모호한 경우에 사용 되는 숨겨진 형식인 기본 형식입니다.The type of this wrapper is often a base System.__ComObject type, which is a hidden type used when the wrapper type is ambiguous. COM 개체가 IDispatch 인터페이스를 구현 하는 경우에도 이러한 기본 형식에 대 한 런타임에 바인딩된 호출을 수행할 수 있습니다.You can still make late-bound calls to such a base type as long as the COM object implements the IDispatch interface. 마찬가지로 반환 된 개체를 적절 한 COM 인터페이스로 캐스팅할 수 있습니다.Likewise, you can cast the returned object to an appropriate COM interface.

개체를 특정 관리 되는 클래스 형식 (제네릭 래퍼 형식이 아님)으로 래핑해야 하는 경우에는 다음 요구 사항을 준수 해야 합니다.For an object to be wrapped with a specific managed class type (and not a generic wrapper type), you must adhere to the following requirements:

또는 이러한 요구 사항을 방지 하 고 메서드를 사용 하 여 관리 되는 특정 클래스 형식으로 래핑된 개체를 가져올 수도 있습니다 Marshal.GetTypedObjectForIUnknown .Alternatively, you can avoid these requirements and still get an object that is wrapped with a specific managed class type by using the Marshal.GetTypedObjectForIUnknown method.

적용 대상

추가 정보