Freigeben über


Marshal.AddRef-Methode

Inkrementiert den Verweiszähler für die angegebene Schnittstelle.

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

Syntax

'Declaration
Public Shared Function AddRef ( _
    pUnk As IntPtr _
) As Integer
'Usage
Dim pUnk As IntPtr
Dim returnValue As Integer

returnValue = Marshal.AddRef(pUnk)
public static int AddRef (
    IntPtr pUnk
)
public:
static int AddRef (
    IntPtr pUnk
)
public static int AddRef (
    IntPtr pUnk
)
public static function AddRef (
    pUnk : IntPtr
) : int

Parameter

  • pUnk
    Der zu inkrementierende Verweiszähler für Schnittstellen.

Rückgabewert

Der neue Wert des Verweiszählers für den pUnk-Parameter.

Hinweise

Der Verweiszähler eines COM-Objekts wird von der Common Language Runtime automatisch verwaltet. Eine direkte Verwendung dieser Methode ist daher nicht erforderlich. In seltenen Fällen, beispielsweise beim Testen eines benutzerdefinierten Marshallers, ist es ggf. erforderlich, die Lebensdauer eines Objekts manuell zu bearbeiten. Nach dem Aufrufen von AddRef müssen Sie den Verweiszähler mit einer Methode wie Marshal.Release dekrementieren. Verlassen Sie sich nicht auf den Rückgabewert von AddRef, da dieser instabil sein kann.

Sie können Marshal.GetComInterfaceForObject, Marshal.GetIUnknownForObject oder Marshal.GetIDispatchForObject aufrufen, um einen IntPtr-Wert abzurufen, der einen IUnknown-Schnittstellenzeiger darstellt. Sie können diese Methoden und die AddRef-Methode auch für verwaltete Objekte verwenden, um die COM-Schnittstellen abzurufen, die vom COM-Aufrufwrapper des verwalteten Objekts dargestellt werden. Wenn Sie mit den Details dieses Wrappertyps nicht vertraut sind, finden Sie unter COM Callable Wrapper (CCW) weitere diesbezügliche Informationen. Weitere Informationen zu IUnknown::AddRef finden Sie in der MSDN Library.

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
Release
QueryInterface
GetComInterfaceForObject
GetIUnknownForObject
GetIDispatchForObject