Marshal.GetTypedObjectForIUnknown(IntPtr, Type) 方法

定義

傳回表示 COM 物件之指定類型的 Managed 物件。

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

參數

pUnk
IntPtr

nativeint

Unmanaged 物件的 IUnknown 介面指標。

t
Type

要求之 Managed 類別的類型。

傳回

對應於 Type 物件 (代表要求的 Unmanaged COM 物件) 的類別執行個體。

屬性

例外狀況

t 未以 ComImportAttribute 賦予屬性。

-或-

t是Windows 執行階段類型。

備註

參數 t 必須是 COM 匯入類型或 COM 匯入類型的子類型。 此外, t 必須是Tlbimp.exe ( 類型連結庫 匯入工具匯入元數據的類型) 。 此類型必須是類別,而不是具有 COM 類別名稱的相關聯 coclass 介面。 例如,如果 Tlbimp.exe 匯 Myclass 入為名為 MyclassClass 的類別,並以名為 Myclass的coclass介面的形式匯入,則必須使用 MyclassClass (不使用 Myclass 此方法) 。 如需匯入類別和 coclass 介面的其他資訊,請參閱 匯入的類型轉換

如果已經取得 參數的物件 pUnkt 則會忽略並傳回現有的物件。 pUnk 表示 IUnknown 介面指標;不過,由於所有 COM 介面都直接或間接衍生自 IUnknown,因此您可以將任何 COM 介面傳遞至這個方法。 所 GetTypedObjectForIUnknown 傳回的對像是運行時間 可呼叫包裝函式 (RCW) ,Common Language Runtime 會如同任何其他 Managed 物件一樣管理。

適用於

另請參閱