Marshal.GetIDispatchForObject-Methode
Aktualisiert: November 2007
Gibt eine IDispatch-Schnittstelle aus einem verwalteten Objekt zurück.
Assembly: mscorlib (in mscorlib.dll)
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)] public static IntPtr GetIDispatchForObject( Object o )
/** @attribute SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode) */ public static IntPtr GetIDispatchForObject( Object o )
public static function GetIDispatchForObject( o : Object ) : IntPtr
Parameter
- o
- Typ: System.Object
Das Objekt, dessen IDispatch-Schnittstelle angefordert wird.
| Ausnahme | Bedingung |
|---|---|
| InvalidCastException | o unterstützt die angeforderte Schnittstelle nicht. |
In verwaltetem Code wird selten direkt mit der IDispatch-Schnittstelle gearbeitet. GetIDispatchForObject ist jedoch hilfreich beim Aufrufen einer Methode, die einen COM-Objektparameter als IntPtr-Typ verfügbar macht, sowie beim benutzerdefinierten Marshalling. Das Aufrufen eines Objekts mit dieser Methode bewirkt, dass der Verweiszähler für den Schnittstellenzeiger vor der Rückgabe des Zeigers inkrementiert wird. Verwenden Sie immer Marshal.Release, um den Verweiszähler zu dekrementieren, nachdem die Verarbeitung des Zeigers abgeschlossen ist.
Sie können diese Methode auch für ein verwaltetes Objekt verwenden, um einen Schnittstellenzeiger auf den COM Callable Wrapper des Objekts abzurufen. Weitere Informationen finden Sie unter COM Callable Wrapper (CCW).
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". |
- SecurityPermission
für die Berechtigung zum Aufrufen von nicht verwaltetem Code.
Zugeordnete Enumeration: UnmanagedCode Sicherheitsaktion: LinkDemand
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile für Smartphone, Windows Mobile für Pocket PC
.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Hinweis: