Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dekrementiert den Verweiszähler des bereitgestellten RCW (Runtime Callable Wrapper).
Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Shared Function ReleaseComObject ( _
o As Object _
) As Integer
'Usage
Dim o As Object
Dim returnValue As Integer
returnValue = Marshal.ReleaseComObject(o)
public static int ReleaseComObject (
Object o
)
public:
static int ReleaseComObject (
Object^ o
)
public static int ReleaseComObject (
Object o
)
public static function ReleaseComObject (
o : Object
) : int
Parameter
- o
Das freizugebende COM-Objekt.
Rückgabewert
Der neue Wert für den Verweiszähler des RCW, der o zugeordnet ist. Dieser Wert ist in der Regel 0, da der RCW unabhängig von der Anzahl der aufrufenden verwalteten Clients genau einen Verweis auf das gewrappte COM-Objekt beibehält.
Ausnahmen
| Ausnahmetyp | Bedingung |
|---|---|
o ist kein gültiges COM-Objekt. – oder – o ist NULL (Nothing in Visual Basic). |
Hinweise
Bei jedem Eintritt eines COM-Schnittstellenzeigers in die Common Runtime Language wird dieser in einem RCW gewrappt. Wenn Sie mit den Features dieses Wrappers nicht vertraut sind, finden Sie unter Runtime Callable Wrapper (RCW) weitere Informationen.
Mit dieser Methode wird die Lebensdauer eines von verwaltetem Code verwendeten COM-Objekts explizit gesteuert. Verwenden Sie diese Methode, um das zugrunde liegende COM-Objekt mit den Verweisen auf Ressourcen zum gegebenen Zeitpunkt freizugeben, oder wenn Objekte in einer bestimmten Reihenfolge freigegeben werden müssen.
Der RCW besitzt einen Verweiszähler, der immer dann inkrementiert wird, wenn ihm ein COM-Schnittstellenzeiger zugeordnet wird. Die ReleaseComObject-Methode dekrementiert den Verweiszähler eines RCW. Wenn der Verweiszähler 0 (null) erreicht hat, gibt die Laufzeit alle Verweise auf das nicht verwaltete COM-Objekt frei und löst eine System.NullReferenceException aus, wenn ein Versuch unternommen wird, das Objekt weiter zu verwenden. Wenn dieselbe COM-Schnittstelle mehrmals aus nicht verwaltetem an verwalteten Code übergeben wird, wird der Verweiszähler für den Wrapper jedes Mal inkrementiert, und beim Aufrufen von ReleaseComObject wird die Anzahl der verbleibenden Verweise zurückgegeben.
Hinweis
Um sicherzustellen, dass der RCW und das ursprüngliche COM-Objekt freigegeben werden, erstellen Sie eine Schleife, aus der Sie diese Methode aufrufen, bis der zurückgegebene Verweiszähler 0 erreicht.
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
- SecurityPermission für die Berechtigung zum Aufrufen von nicht verwaltetem Code. Zugeordnete Enumeration: UnmanagedCode Sicherheitsaktion: LinkDemand
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
FinalReleaseComObject
NullReferenceException