다음을 통해 공유


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 가져올 수 있습니다.

적용 대상

추가 정보