Freigeben über


Marshal.GetTypedObjectForIUnknown-Methode

Gibt ein verwaltetes Objekt eines angegebenen Typs zurück, das ein COM-Objekt darstellt.

Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Shared Function GetTypedObjectForIUnknown ( _
    pUnk As IntPtr, _
    t As Type _
) As Object
'Usage
Dim pUnk As IntPtr
Dim t As Type
Dim returnValue As Object

returnValue = Marshal.GetTypedObjectForIUnknown(pUnk, t)
public static Object GetTypedObjectForIUnknown (
    IntPtr pUnk,
    Type t
)
public:
static Object^ GetTypedObjectForIUnknown (
    IntPtr pUnk, 
    Type^ t
)
public static Object GetTypedObjectForIUnknown (
    IntPtr pUnk, 
    Type t
)
public static function GetTypedObjectForIUnknown (
    pUnk : IntPtr, 
    t : Type
) : Object

Parameter

  • pUnk
    Ein Zeiger auf die IUnknown-Schnittstelle des nicht verwalteten Objekts.
  • t
    Der Type der angeforderten verwalteten Klasse.

Rückgabewert

Eine Instanz der Klasse , die dem Type-Objekt entspricht, das das angeforderte nicht verwaltete COM-Objekt darstellt.

Ausnahmen

Ausnahmetyp Bedingung

ArgumentException

t ist nicht attributiert mit System.Runtime.InteropServices.ComImportAttribute.

Hinweise

Der t-Parameter muss entweder ein von COM importierter Typ oder ein Untertyp eines von COM importierten Typs sein. Darüber hinaus muss t ein Typ sein, dessen Metadaten vom Type Library Importer-Tool (Tlbimp.exe) importiert wurden. Dieser Typ muss eine Klasse darstellen und keine zugehörige Co-Klassenschnittstelle, die den Namen der COM-Klasse trägt. Angenommen, Tlbimp.exe importiert Myclass als Klasse MyclassClass sowie die Co-Klassenschnittstelle Myclass. In diesem Fall muss nicht Myclass, sondern MyclassClass mit dieser Methode verwendet werden. Weitere Informationen über importierte Klassen und Co-Klassenschnittstellen finden Sie unter Konvertieren importierter Typen.

Wenn für den pUnk-Parameter bereits ein Objekt abgerufen wurde, wird t ignoriert, und das vorhandene Objekt wird zurückgegeben. pUnk stellt einen IUnknown-Schnittstellenzeiger dar. Da jedoch alle COM-Schnittstellen direkt oder indirekt von IUnknown abgeleitet sind, können Sie eine beliebige COM-Schnittstelle an diese Methode übergeben. Das von GetTypedObjectForIUnknown zurückgegebene Objekt ist ein RCW (Runtime Callable Wrapper), der von der Common Language Runtime wie alle anderen verwalteten Objekte verwaltet wird. Weitere Informationen finden Sie unter Runtime Callable Wrapper (RCW).

Hinweis

Diese Methode verwendet SecurityAction.LinkDemand, um einen Aufruf aus nicht vertrauenswürdigem Code zu verhindern. Nur der direkte Aufrufer muss über die SecurityPermissionAttribute.UnmanagedCode-Berechtigung verfügen. Wenn der Code aus teilweise vertrauenswürdigem Code aufgerufen werden kann, dürfen Benutzereingaben nicht ohne Validierung an Methoden der Marshal-Klasse übergeben werden. Wichtige Einschränkungen bei der Verwendung des LinkDemand-Members finden Sie unter "Demand" und "LinkDemand".

.NET Framework-Sicherheit

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0

Siehe auch

Referenz

Marshal-Klasse
Marshal-Member
System.Runtime.InteropServices-Namespace
ComImportAttribute-Klasse

Weitere Ressourcen

Type Library Importer-Tool (Tlbimp.exe)