Marshal.GetObjectForIUnknown(IntPtr) 메서드

정의

IUnknown 인터페이스에 대한 포인터로 COM 개체를 나타내는 형식의 인스턴스를 반환합니다.

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

nativeint

인터페이스에 대한 포인터입니다 IUnknown .

반품

지정된 관리되지 않는 COM 개체를 나타내는 개체입니다.

특성

예외

pUnkZero입니다.

설명

이 메서드는 관리되는 개체에서 래핑됩니다 IUnknown . 이는 COM 구성 요소의 참조 수를 증가시키는 효과가 있습니다. 런타임이 COM 개체를 나타내는 관리되는 개체에서 가비지 수집을 수행할 때 참조 수가 감소합니다.

매개 변수는 pUnk 인터페이스 포인터를 IUnknown 나타냅니다. 그러나 모든 COM 인터페이스는 직접 또는 간접적으로 IUnknown파생되므로 COM 인터페이스를 이 메서드에 전달할 수 있습니다. 반환된 GetObjectForIUnknown 개체는 런타임 호출 가능 래퍼이며, 공용 언어 런타임은 다른 관리되는 개체와 마찬가지로 관리합니다. 이 래퍼의 형식은 래퍼 형식이 모호할 때 사용되는 숨겨진 형식인 기본 System.__ComObject 형식인 경우가 많습니다. COM 개체가 IDispatch 인터페이스를 구현하는 한 이러한 기본 형식에 대한 런타임에 바인딩된 호출을 수행할 수 있습니다. 마찬가지로 반환된 개체를 적절한 COM 인터페이스로 캐스팅할 수 있습니다.

개체를 특정 관리되는 클래스 형식(제네릭 래퍼 형식이 아님)으로 래핑하려면 다음 요구 사항을 준수해야 합니다.

또는 이러한 요구 사항을 방지하고 메서드를 사용하여 특정 관리되는 클래스 형식으로 래핑된 개체를 Marshal.GetTypedObjectForIUnknown 가져올 수 있습니다.

적용 대상

추가 정보