Marshal.GetComInterfaceForObject Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zwraca wskaźnik interfejsu reprezentujący interfejs dla obiektu.
Przeciążenia
GetComInterfaceForObject(Object, Type) |
Przestarzałe.
Zwraca wskaźnik do interfejsu IUnknown , który reprezentuje określony interfejs w określonym obiekcie. Dostęp do niestandardowego interfejsu zapytań jest domyślnie włączony. |
GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) |
Przestarzałe.
Zwraca wskaźnik do interfejsu IUnknown , który reprezentuje określony interfejs w określonym obiekcie. Dostęp do niestandardowego interfejsu zapytań jest kontrolowany przez określony tryb dostosowywania. |
GetComInterfaceForObject<T,TInterface>(T) |
Zwraca wskaźnik do interfejsu IUnknown , który reprezentuje określony interfejs na obiekcie określonego typu. Dostęp do niestandardowego interfejsu zapytań jest domyślnie włączony. |
GetComInterfaceForObject(Object, Type)
- Źródło:
- Marshal.NoCom.cs
- Źródło:
- Marshal.NoCom.cs
- Źródło:
- Marshal.NoCom.cs
Przestroga
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
Zwraca wskaźnik do interfejsu IUnknown , który reprezentuje określony interfejs w określonym obiekcie. Dostęp do niestandardowego interfejsu zapytań jest domyślnie włączony.
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
Parametry
- o
- Object
Obiekt, który udostępnia interfejs.
- T
- Type
Żądany typ interfejsu.
Zwraca
nativeint
Wskaźnik interfejsu reprezentujący określony interfejs dla obiektu.
- Atrybuty
Wyjątki
Parametr T
nie jest interfejsem.
-lub-
Typ nie jest widoczny dla modelu COM.
-lub-
Parametr T
jest definicją typu ogólnego.
Parametr o
nie obsługuje żądanego interfejsu.
Uwagi
Ta metoda zwraca wskaźnik interfejsu, który reprezentuje żądany interfejs w określonym obiekcie. Jest to szczególnie przydatne, jeśli masz niezarządzaną metodę, która oczekuje przekazania wskaźnika interfejsu. Wywołanie obiektu za pomocą tej metody powoduje, że liczba odwołań zwiększa się w wskaźniku interfejsu przed zwróceniem wskaźnika. Zawsze używaj polecenia Marshal.Release , aby odkreślić liczbę odwołań po zakończeniu pracy ze wskaźnikiem. Podczas korzystania z nieprzetworzonych wskaźników interfejsu COM należy przestrzegać reguł zdefiniowanych przez model COM.
GetComInterfaceForObject(Object, Type) Funkcja jest przydatna podczas wywoływania metody, która uwidacznia parametr obiektu COM jako IntPtr typ lub przy użyciu marshalingu niestandardowego. Mimo że ta metoda jest mniej powszechna, można użyć tej metody w obiekcie zarządzanym, aby uzyskać wskaźnik do wywoływanej otoki COM obiektu. Można na przykład użyć GetComInterfaceForObject(Object, Type) obiektu zarządzanego, który jest eksportowany do modelu COM, aby uzyskać wskaźnik interfejsu dla elementu System.Runtime.InteropServices.UCOMIConnectionPointContainer. Nie można uzyskać wskaźnika do interfejsu klasy, ponieważ interfejs klasy nie ma odpowiedniego typu do przekazania do drugiego parametru (t
). Zamiast tego użyj polecenia Marshal.GetIDispatchForObject , aby wywołać elementy członkowskie w interfejsie domyślnym otoki wywoływanej modelu COM, która jest zwykle interfejsem klasy automatycznego wysyłania.
Przeciążenie GetComInterfaceForObject(Object, Type) metody domyślnie zezwala na dostosowywanie interfejsu zapytania. Aby określić, czy zastosować dostosowywanie interfejsu GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) zapytania, użyj przeciążenia metody.
Aby uzyskać dodatkowe informacje, zobacz artykuły COM Callable Wrapper and Runtime Callable Wrapper (Otoka wywoływana w środowisku uruchomieniowym COM).
Zobacz też
- GetComInterfaceForObjectInContext(Object, Type)
- ComImportAttribute
- Release(IntPtr)
- UCOMIConnectionPointContainer
- GetIDispatchForObject(Object)
Dotyczy
GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)
- Źródło:
- Marshal.NoCom.cs
- Źródło:
- Marshal.NoCom.cs
- Źródło:
- Marshal.NoCom.cs
Przestroga
GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) and support for ICustomQueryInterface may be unavailable in future releases.
Zwraca wskaźnik do interfejsu IUnknown , który reprezentuje określony interfejs w określonym obiekcie. Dostęp do niestandardowego interfejsu zapytań jest kontrolowany przez określony tryb dostosowywania.
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
Parametry
- o
- Object
Obiekt, który udostępnia interfejs.
- T
- Type
Żądany typ interfejsu.
Jedna z wartości wyliczenia wskazująca, czy zastosować IUnknown::QueryInterface
dostosowanie dostarczone przez element ICustomQueryInterface.
Zwraca
nativeint
Wskaźnik interfejsu reprezentujący interfejs dla obiektu.
- Atrybuty
Wyjątki
Parametr T
nie jest interfejsem.
-lub-
Typ nie jest widoczny dla modelu COM.
-lub-
Parametr T
jest definicją typu ogólnego.
Obiekt o
nie obsługuje żądanego interfejsu.
Uwagi
GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) umożliwia określenie, czy zastosować dostosowywanie interfejsu zapytania. GetComInterfaceForObject(Object, Type) Użyj przeciążenia, aby domyślnie zastosować dostosowywanie interfejsu zapytania.
Dotyczy
GetComInterfaceForObject<T,TInterface>(T)
- Źródło:
- Marshal.NoCom.cs
- Źródło:
- Marshal.NoCom.cs
- Źródło:
- Marshal.NoCom.cs
Zwraca wskaźnik do interfejsu IUnknown , który reprezentuje określony interfejs na obiekcie określonego typu. Dostęp do niestandardowego interfejsu zapytań jest domyślnie włączony.
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
Parametry typu
- T
Typ .o
- TInterface
Typ interfejsu do zwrócenia.
Parametry
- o
- T
Obiekt, który udostępnia interfejs.
Zwraca
nativeint
Wskaźnik interfejsu TInterface
reprezentujący interfejs.
- Atrybuty
Wyjątki
Parametr TInterface
nie jest interfejsem.
-lub-
Typ nie jest widoczny dla modelu COM.
-lub-
Parametr T
jest otwartym typem ogólnym.
Parametr o
nie obsługuje interfejsu TInterface
.
Parametr o
ma wartość null
.
Uwagi
Ta metoda zwraca wskaźnik interfejsu TInterface
, który reprezentuje interfejs w określonym obiekcie. Jest to szczególnie przydatne, jeśli masz niezarządzaną metodę, która oczekuje przekazania wskaźnika interfejsu. Wywołanie obiektu za pomocą tej metody powoduje, że liczba odwołań zwiększa się w wskaźniku interfejsu przed zwróceniem wskaźnika. Zawsze używaj Marshal.Release metody do dekrementacji liczby odwołań po zakończeniu pracy ze wskaźnikiem. Podczas korzystania z nieprzetworzonych wskaźników interfejsu COM należy przestrzegać reguł zdefiniowanych przez model COM.
GetComInterfaceForObject<T,TInterface>(T) Funkcja jest przydatna podczas wywoływania metody, która uwidacznia parametr obiektu COM jako IntPtr typ lub przy użyciu marshalingu niestandardowego. Można również użyć tej metody w obiekcie zarządzanym, aby uzyskać wskaźnik do zawijanej otoki COM obiektu, chociaż jest to mniej powszechne. Można na przykład użyć GetComInterfaceForObject<T,TInterface>(T) obiektu zarządzanego, który jest eksportowany do modelu COM, aby uzyskać wskaźnik interfejsu dla elementu System.Runtime.InteropServices.UCOMIConnectionPointContainer.
Przeciążenie GetComInterfaceForObject<T,TInterface>(T) metody domyślnie zezwala na dostosowywanie interfejsu zapytania. Aby określić, czy zastosować dostosowywanie interfejsu GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) zapytania, użyj przeciążenia metody.
Aby uzyskać dodatkowe informacje, zobacz artykuły COM Callable Wrapper and Runtime Callable Wrapper (Otoka wywoływana w środowisku uruchomieniowym COM).