Marshal.GetComInterfaceForObject Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
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.
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
- GetComInterfaceForObjectInContext(Object, Type)
- ComImportAttribute
- Release(IntPtr)
- UCOMIConnectionPointContainer
- GetIDispatchForObject(Object)
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.
Een van de opsommingswaarden die aangeven of een IUnknown::QueryInterface aanpassing moet worden toegepast die wordt geleverd door een ICustomQueryInterface.
Retouren
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.
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
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.