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 介面的指標。

傳回

表示指定之 Unmanaged COM 物件的物件。

屬性

例外狀況

備註

這個方法會 IUnknown 包裝在Managed物件中。 這會影響遞增 COM元件的參考計數。 當運行時間對代表 COM 物件的 Managed 物件執行垃圾收集時,將會遞減參考計數。

參數 pUnk 代表 IUnknown 介面指標;不過,因為所有 COM 介面直接或間接衍生自 IUnknown,您可以將任何 COM 介面傳遞至這個方法。 所 GetObjectForIUnknown 傳回的對像是運行時間 可呼叫包裝函式,Common Language Runtime 會如同任何其他 Managed 對象一樣管理。 此包裝函式的類型通常是基底 System.__ComObject 類型,這是包裝函式類型模棱兩可時所使用的隱藏類型。 只要 COM 物件實作 IDispatch 介面,您仍然可以對這類基底類型進行晚期綁定呼叫。 同樣地,您可以將傳回的物件轉換成適當的 COM 介面。

若要使用特定 Managed 類別類型 (而非泛型包裝函式類型) 的物件,您必須遵循下列需求:

或者,您也可以避免這些需求,而且仍然可以使用 Marshal.GetTypedObjectForIUnknown 方法來取得以特定 Managed 類別類型包裝的物件。

適用於

另請參閱