Udostępnij za pośrednictwem


Marshal.GetComInterfaceForObject Metoda

Definicja

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

IntPtr

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.

Parametr o ma wartość null.

-lub-

Parametr T ma wartość null.

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ż

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.

mode
CustomQueryInterfaceMode

Jedna z wartości wyliczenia wskazująca, czy zastosować IUnknown::QueryInterface dostosowanie dostarczone przez element ICustomQueryInterface.

Zwraca

IntPtr

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.

Parametr o ma wartość null.

-lub-

Parametr T ma wartość null.

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

IntPtr

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).

Dotyczy