Marshal.GetTypedObjectForIUnknown(IntPtr, Type) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回表示 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
参数必须是 COM 导入的类型或 COM 导入类型的子类型。 此外, t
必须是Tlbimp.exe ( 类型库导入程序) 工具导入元数据的类型。 此类型必须是一个类,而不是一个关联的 coclass 接口,该接口承载 COM 类的名称。 例如,如果Tlbimp.exe导入 Myclass
为调用 MyclassClass
的类和调用 Myclass
的 coclass 接口,则必须将 MyclassClass
(不 Myclass
与此方法) 。 有关导入的类和 coclass 接口的其他信息,请参阅 导入的类型转换。
如果已为 pUnk
参数获取对象, t
则忽略并返回现有对象。 pUnk
表示 IUnknown 接口指针;但是,由于所有 COM 接口直接或间接派生自 IUnknown
,因此可以将任何 COM 接口传递给此方法。 返回 GetTypedObjectForIUnknown 的对象是 运行时可调用包装器 (RCW) ,公共语言运行时像执行任何其他托管对象一样对其进行管理。