Marshal.GetComInterfaceForObject Methode

Definitie

Retourneert een interfaceaanwijzer die een interface voor een object vertegenwoordigt.

Overloads

Name Description
GetComInterfaceForObject(Object, Type)
Verouderd.

Retourneert een aanwijzer naar een IUnknown-interface die de opgegeven interface op het opgegeven object vertegenwoordigt. Toegang tot de aangepaste queryinterface is standaard ingeschakeld.

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)
Verouderd.

Retourneert een aanwijzer naar een IUnknown-interface die de opgegeven interface op het opgegeven object vertegenwoordigt. De toegang tot de aangepaste queryinterface wordt beheerd door de opgegeven aanpassingsmodus.

GetComInterfaceForObject<T,TInterface>(T)

Hiermee wordt een aanwijzer geretourneerd naar een IUnknown-interface die de opgegeven interface vertegenwoordigt op een object van het opgegeven type. Toegang tot de aangepaste queryinterface is standaard ingeschakeld.

GetComInterfaceForObject(Object, Type)

Bron:
Marshal.NoCom.cs
Bron:
Marshal.NoCom.cs
Bron:
Marshal.NoCom.cs
Bron:
Marshal.NoCom.cs
Bron:
Marshal.NoCom.cs

Let op

GetComInterfaceForObject(Object, Type) may be unavailable in future releases. Instead, use GetComInterfaceForObject<T,T2>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296509

Retourneert een aanwijzer naar een IUnknown-interface die de opgegeven interface op het opgegeven object vertegenwoordigt. Toegang tot de aangepaste queryinterface is standaard ingeschakeld.

public:
 static IntPtr GetComInterfaceForObject(System::Object ^ o, Type ^ T);
[System.Obsolete("GetComInterfaceForObject(Object, Type) may be unavailable in future releases. Instead, use GetComInterfaceForObject<T,T2>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296509")]
[System.Security.SecurityCritical]
public static IntPtr GetComInterfaceForObject(object o, Type T);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static IntPtr GetComInterfaceForObject(object o, Type T);
[System.Security.SecurityCritical]
public static IntPtr GetComInterfaceForObject(object o, Type T);
public static IntPtr GetComInterfaceForObject(object o, Type T);
[<System.Obsolete("GetComInterfaceForObject(Object, Type) may be unavailable in future releases. Instead, use GetComInterfaceForObject<T,T2>(T). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296509")>]
[<System.Security.SecurityCritical>]
static member GetComInterfaceForObject : obj * Type -> nativeint
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member GetComInterfaceForObject : obj * Type -> nativeint
[<System.Security.SecurityCritical>]
static member GetComInterfaceForObject : obj * Type -> nativeint
static member GetComInterfaceForObject : obj * Type -> nativeint
Public Shared Function GetComInterfaceForObject (o As Object, T As Type) As IntPtr

Parameters

o
Object

Het object dat de interface biedt.

T
Type

Het type interface dat wordt aangevraagd.

Retouren

IntPtr

nativeint

De interfacepointer die de opgegeven interface voor het object vertegenwoordigt.

Kenmerken

Uitzonderingen

De T parameter is geen interface.

– of –

Het type is niet zichtbaar voor COM.

– of –

De T parameter is een algemene typedefinitie.

De o parameter biedt geen ondersteuning voor de aangevraagde interface.

De o parameter is null.

– of –

De T parameter is null.

Opmerkingen

Deze methode retourneert een interfaceaanwijzer die de aangevraagde interface op het opgegeven object vertegenwoordigt. Het is met name handig als u een niet-beheerde methode hebt die verwacht een interfaceaanwijzer door te geven. Als u een object aanroept met deze methode, wordt het aantal verwijzingen verhoogd op de interfaceaanwijzer voordat de aanwijzer wordt geretourneerd. Gebruik Marshal.Release altijd om het aantal verwijzingen te verlagen zodra u klaar bent met de aanwijzer. U moet voldoen aan de regels die zijn gedefinieerd door COM wanneer u onbewerkte COM-interfacepointers gebruikt.

GetComInterfaceForObject(Object, Type) is handig bij het aanroepen van een methode waarmee een COM-objectparameter wordt weergegeven als een IntPtr type of met aangepaste marshaling. Hoewel minder gebruikelijk, kunt u deze methode op een beheerd object gebruiken om een aanwijzer te verkrijgen naar de COM aanroepbare wrapper van het object. U kunt bijvoorbeeld een beheerd object gebruiken GetComInterfaceForObject(Object, Type) dat naar COM wordt geëxporteerd om een interfaceaanwijzer voor System.Runtime.InteropServices.UCOMIConnectionPointContainerte verkrijgen. U kunt geen aanwijzer naar een klasse-interface verkrijgen omdat een klasse-interface niet het bijbehorende type heeft dat moet worden doorgegeven aan de tweede parameter (t). Gebruik in plaats daarvan Marshal.GetIDispatchForObject om de leden aan te roepen op de standaardinterface van de aanroepbare COM-wrapper, wat meestal een interface voor automatische verzending is.

De overbelasting van de GetComInterfaceForObject(Object, Type) methode staat standaard aanpassing van de queryinterface toe. Als u wilt opgeven of u queryinterfaceaanpassing wilt toepassen, gebruikt u de overbelasting van de GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) methode.

Zie de artikelen COM Callable Wrapper en Runtime Callable Wrapper voor meer informatie.

Zie ook

Van toepassing op

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)

Bron:
Marshal.NoCom.cs
Bron:
Marshal.NoCom.cs
Bron:
Marshal.NoCom.cs
Bron:
Marshal.NoCom.cs
Bron:
Marshal.NoCom.cs

Let op

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) and support for ICustomQueryInterface may be unavailable in future releases.

Retourneert een aanwijzer naar een IUnknown-interface die de opgegeven interface op het opgegeven object vertegenwoordigt. De toegang tot de aangepaste queryinterface wordt beheerd door de opgegeven aanpassingsmodus.

public:
 static IntPtr GetComInterfaceForObject(System::Object ^ o, Type ^ T, System::Runtime::InteropServices::CustomQueryInterfaceMode mode);
[System.Obsolete("GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) and support for ICustomQueryInterface may be unavailable in future releases.")]
[System.Security.SecurityCritical]
public static IntPtr GetComInterfaceForObject(object o, Type T, System.Runtime.InteropServices.CustomQueryInterfaceMode mode);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static IntPtr GetComInterfaceForObject(object o, Type T, System.Runtime.InteropServices.CustomQueryInterfaceMode mode);
[System.Security.SecurityCritical]
public static IntPtr GetComInterfaceForObject(object o, Type T, System.Runtime.InteropServices.CustomQueryInterfaceMode mode);
public static IntPtr GetComInterfaceForObject(object o, Type T, System.Runtime.InteropServices.CustomQueryInterfaceMode mode);
[<System.Obsolete("GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) and support for ICustomQueryInterface may be unavailable in future releases.")>]
[<System.Security.SecurityCritical>]
static member GetComInterfaceForObject : obj * Type * System.Runtime.InteropServices.CustomQueryInterfaceMode -> nativeint
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member GetComInterfaceForObject : obj * Type * System.Runtime.InteropServices.CustomQueryInterfaceMode -> nativeint
[<System.Security.SecurityCritical>]
static member GetComInterfaceForObject : obj * Type * System.Runtime.InteropServices.CustomQueryInterfaceMode -> nativeint
static member GetComInterfaceForObject : obj * Type * System.Runtime.InteropServices.CustomQueryInterfaceMode -> nativeint
Public Shared Function GetComInterfaceForObject (o As Object, T As Type, mode As CustomQueryInterfaceMode) As IntPtr

Parameters

o
Object

Het object dat de interface biedt.

T
Type

Het type interface dat wordt aangevraagd.

mode
CustomQueryInterfaceMode

Een van de opsommingswaarden die aangeven of een IUnknown::QueryInterface aanpassing moet worden toegepast die wordt geleverd door een ICustomQueryInterface.

Retouren

IntPtr

nativeint

De interfacepointer die de interface voor het object vertegenwoordigt.

Kenmerken

Uitzonderingen

De T parameter is geen interface.

– of –

Het type is niet zichtbaar voor COM.

– of –

De T parameter is een algemene typedefinitie.

Het object o biedt geen ondersteuning voor de aangevraagde interface.

De o parameter is null.

– of –

De T parameter is null.

Opmerkingen

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) hiermee kunt u opgeven of u de aanpassing van de queryinterface wilt toepassen. Gebruik de GetComInterfaceForObject(Object, Type) overbelasting om standaard queryinterfaceaanpassing toe te passen.

Van toepassing op

GetComInterfaceForObject<T,TInterface>(T)

Bron:
Marshal.NoCom.cs
Bron:
Marshal.NoCom.cs
Bron:
Marshal.NoCom.cs
Bron:
Marshal.NoCom.cs
Bron:
Marshal.NoCom.cs

Hiermee wordt een aanwijzer geretourneerd naar een IUnknown-interface die de opgegeven interface vertegenwoordigt op een object van het opgegeven type. Toegang tot de aangepaste queryinterface is standaard ingeschakeld.

public:
generic <typename T, typename TInterface>
 static IntPtr GetComInterfaceForObject(T o);
[System.Security.SecurityCritical]
public static IntPtr GetComInterfaceForObject<T,TInterface>(T o);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static IntPtr GetComInterfaceForObject<T,TInterface>(T o);
public static IntPtr GetComInterfaceForObject<T,TInterface>(T o);
[<System.Security.SecurityCritical>]
static member GetComInterfaceForObject : 'T -> nativeint
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member GetComInterfaceForObject : 'T -> nativeint
static member GetComInterfaceForObject : 'T -> nativeint
Public Shared Function GetComInterfaceForObject(Of T, TInterface) (o As T) As IntPtr

Type parameters

T

Het type o.

TInterface

Het type interface dat moet worden geretourneerd.

Parameters

o
T

Het object dat de interface biedt.

Retouren

IntPtr

nativeint

De interfacepointer die de TInterface interface vertegenwoordigt.

Kenmerken

Uitzonderingen

De TInterface parameter is geen interface.

– of –

Het type is niet zichtbaar voor COM.

– of –

De T parameter is een open algemeen type.

De o parameter biedt geen ondersteuning voor de TInterface interface.

De o parameter is null.

Opmerkingen

Deze methode retourneert een interfaceaanwijzer die de TInterface interface van het opgegeven object vertegenwoordigt. Het is met name handig als u een niet-beheerde methode hebt die verwacht een interfaceaanwijzer door te geven. Als u een object aanroept met deze methode, wordt het aantal verwijzingen verhoogd op de interfaceaanwijzer voordat de aanwijzer wordt geretourneerd. Gebruik altijd de Marshal.Release methode om het aantal verwijzingen te verlagen wanneer u klaar bent met de aanwijzer. U moet voldoen aan de regels die zijn gedefinieerd door COM wanneer u onbewerkte COM-interfacepointers gebruikt.

GetComInterfaceForObject<T,TInterface>(T) is handig bij het aanroepen van een methode waarmee een COM-objectparameter wordt weergegeven als een IntPtr type of met aangepaste marshaling. U kunt deze methode ook gebruiken voor een beheerd object om een aanwijzer te verkrijgen naar de aanroepbare COM-wrapper van het object, hoewel dit minder gebruikelijk is. U kunt bijvoorbeeld een beheerd object gebruiken GetComInterfaceForObject<T,TInterface>(T) dat naar COM wordt geëxporteerd om een interfaceaanwijzer voor System.Runtime.InteropServices.UCOMIConnectionPointContainerte verkrijgen.

De overbelasting van de GetComInterfaceForObject<T,TInterface>(T) methode staat standaard aanpassing van de queryinterface toe. Als u wilt opgeven of u queryinterfaceaanpassing wilt toepassen, gebruikt u de overbelasting van de GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) methode.

Zie de artikelen COM Callable Wrapper en Runtime Callable Wrapper voor meer informatie.

Van toepassing op