Marshal.GetTypedObjectForIUnknown(IntPtr, Type) 方法

定义

返回表示 COM 对象的指定类型的托管对象。

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

指向非托管对象的 IUnknown 接口的指针。

t
Type

请求的托管类的类型。

返回

类的实例,与表示所请求的非托管 COM 对象的 Type 对象相对应。

属性

例外

t 并不具有 ComImportAttribute 特性。

- 或 -

t是Windows 运行时类型。

注解

参数 t 必须是 COM 导入类型或 COM 导入类型的子类型。 此外, t 必须是其元数据由 Tlbimp.exe (类型库导入程序) 工具导入的类型。 此类型必须是类,而不是包含 COM 类名称的关联 coclass 接口。 例如,如果 Tlbimp.exe 导入 Myclass 为名为 的 MyclassClass 类,导入为名为 的 Myclasscoclass 接口,则必须使用 MyclassClass (不 Myclass) 此方法。 有关导入的类和 coclass 接口的其他信息,请参阅 导入的类型转换

如果已为 pUnk 参数获取对象, t 则忽略 并返回现有对象。 pUnk 表示 IUnknown 接口指针;但是,由于所有 COM 接口直接或间接派生自 IUnknown,因此可以将任何 COM 接口传递给此方法。 返回 GetTypedObjectForIUnknown 的对象是 运行时可调用包装器 (RCW) ,公共语言运行时像管理任何其他托管对象一样对其进行管理。

适用于

另请参阅