Marshal.GetComInterfaceForObject Yöntem

Tanım

Bir nesnenin arabirimini temsil eden bir arabirim işaretçisi döndürür.

Aşırı Yüklemeler

GetComInterfaceForObject(Object, Type)
Geçersiz.

Belirtilen nesnede belirtilen arabirimi temsil eden IUnknown arabirimine bir işaretçi döndürür. Özel sorgu arabirimi erişimi varsayılan olarak etkindir.

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)
Geçersiz.

Belirtilen nesnede belirtilen arabirimi temsil eden IUnknown arabirimine bir işaretçi döndürür. Özel sorgu arabirimi erişimi belirtilen özelleştirme modu tarafından denetlenebilir.

GetComInterfaceForObject<T,TInterface>(T)

Belirtilen türdeki bir nesnede belirtilen arabirimi temsil eden IUnknown arabirimine bir işaretçi döndürür. Özel sorgu arabirimi erişimi varsayılan olarak etkindir.

GetComInterfaceForObject(Object, Type)

Kaynak:
Marshal.NoCom.cs
Kaynak:
Marshal.NoCom.cs
Kaynak:
Marshal.NoCom.cs

Dikkat

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

Belirtilen nesnede belirtilen arabirimi temsil eden IUnknown arabirimine bir işaretçi döndürür. Özel sorgu arabirimi erişimi varsayılan olarak etkindir.

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

Parametreler

o
Object

Arabirimi sağlayan nesne.

T
Type

İstenen arabirim türü.

Döndürülenler

IntPtr

nativeint

Nesne için belirtilen arabirimi temsil eden arabirim işaretçisi.

Öznitelikler

Özel durumlar

T parametresi bir arabirim değil.

-veya-

Tür COM'da görünmez.

-veya-

T parametresi genel bir tür tanımıdır.

o parametresi istenen arabirimi desteklemiyor.

o parametresidirnull.

-veya-

T parametresidirnull.

Açıklamalar

Bu yöntem, belirtilen nesnede istenen arabirimi temsil eden bir arabirim işaretçisi döndürür. Özellikle bir arabirim işaretçisi geçirilmesini bekleyen yönetilmeyen bir yönteminiz varsa kullanışlıdır. Bu yöntemle bir nesnenin çağrılması, başvuru sayısının işaretçi döndürülmeden önce arabirim işaretçisinde artmalarına neden olur. İşaretçiyle işiniz bittiğinde başvuru sayısını azaltmaya yönelik her zaman kullanın Marshal.Release . Ham COM arabirim işaretçilerini kullanırken COM tarafından tanımlanan kurallara bağlı kalmalısınız.

GetComInterfaceForObject(Object, Type) bir COM nesne parametresini tür olarak veya özel hazırlama ile kullanıma sunan bir IntPtr yöntemi çağırırken yararlıdır. Daha az yaygın olsa da, yönetilen bir nesnede bu yöntemi kullanarak nesnenin COM çağrılabilen sarmalayıcısına bir işaretçi alabilirsiniz. Örneğin, için bir arabirim işaretçisi System.Runtime.InteropServices.UCOMIConnectionPointContaineralmak üzere COM'a aktarılan bir yönetilen nesnede kullanabilirsinizGetComInterfaceForObject(Object, Type). Sınıf arabirimi ikinci parametreye (t ) geçirmek için karşılık gelen türe sahip olmadığından, sınıf arabirimine yönelik bir işaretçi alamazsınız. Bunun yerine, genellikle otomatik dağıtım sınıfı arabirimi olan COM çağrılabilir sarmalayıcının varsayılan arabiriminde üyeleri çağırmak için kullanın Marshal.GetIDispatchForObject .

Yöntem GetComInterfaceForObject(Object, Type) aşırı yüklemesi, sorgu arabiriminin varsayılan olarak özelleştirilmesini sağlar. Sorgu arabirimi özelleştirmesinin uygulanıp uygulanmayacağını belirtmek için yöntem aşırı yüklemesini GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) kullanın.

Ek bilgi için COM Çağrılabilen Sarmalayıcı ve Çalışma Zamanı Çağrılabilen Sarmalayıcı makalelerine bakın.

Ayrıca bkz.

Şunlara uygulanır

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)

Kaynak:
Marshal.NoCom.cs
Kaynak:
Marshal.NoCom.cs
Kaynak:
Marshal.NoCom.cs

Dikkat

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

Belirtilen nesnede belirtilen arabirimi temsil eden IUnknown arabirimine bir işaretçi döndürür. Özel sorgu arabirimi erişimi belirtilen özelleştirme modu tarafından denetlenebilir.

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

Parametreler

o
Object

Arabirimi sağlayan nesne.

T
Type

İstenen arabirim türü.

mode
CustomQueryInterfaceMode

tarafından ICustomQueryInterfacesağlanan bir IUnknown::QueryInterface özelleştirmenin uygulanıp uygulanmayacağını gösteren numaralandırma değerlerinden biri.

Döndürülenler

IntPtr

nativeint

Nesnenin arabirimini temsil eden arabirim işaretçisi.

Öznitelikler

Özel durumlar

T parametresi bir arabirim değil.

-veya-

Tür COM'da görünmez.

-veya-

T parametresi genel bir tür tanımıdır.

Nesnesi o istenen arabirimi desteklemiyor.

o parametresidirnull.

-veya-

T parametresidirnull.

Açıklamalar

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) , sorgu arabirimi özelleştirmesi uygulanıp uygulanmayacağını belirtmenize olanak tanır. Sorgu arabirimi özelleştirmesini GetComInterfaceForObject(Object, Type) varsayılan olarak uygulamak için aşırı yüklemeyi kullanın.

Şunlara uygulanır

GetComInterfaceForObject<T,TInterface>(T)

Kaynak:
Marshal.NoCom.cs
Kaynak:
Marshal.NoCom.cs
Kaynak:
Marshal.NoCom.cs

Belirtilen türdeki bir nesnede belirtilen arabirimi temsil eden IUnknown arabirimine bir işaretçi döndürür. Özel sorgu arabirimi erişimi varsayılan olarak etkindir.

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

Tür Parametreleri

T

türü o.

TInterface

Döndürülecek arabirim türü.

Parametreler

o
T

Arabirimi sağlayan nesne.

Döndürülenler

IntPtr

nativeint

Arabirimi temsil eden arabirim işaretçisi TInterface .

Öznitelikler

Özel durumlar

TInterface parametresi bir arabirim değil.

-veya-

Tür COM'da görünmez.

-veya-

T parametresi açık bir genel türdür.

o parametresi arabirimini TInterface desteklemiyor.

o parametresidirnull.

Açıklamalar

Bu yöntem, belirtilen nesnedeki TInterface arabirimi temsil eden bir arabirim işaretçisi döndürür. Özellikle bir arabirim işaretçisi geçirilmesini bekleyen yönetilmeyen bir yönteminiz varsa kullanışlıdır. Bu yöntemle bir nesnenin çağrılması, başvuru sayısının işaretçi döndürülmeden önce arabirim işaretçisinde artmalarına neden olur. İşaretçiyle Marshal.Release işiniz bittiğinde başvuru sayısını azaltmaya yönelik her zaman yöntemini kullanın. Ham COM arabirim işaretçilerini kullanırken COM tarafından tanımlanan kurallara bağlı kalmalısınız.

GetComInterfaceForObject<T,TInterface>(T) bir COM nesne parametresini tür olarak veya özel hazırlama ile kullanıma sunan bir IntPtr yöntemi çağırırken yararlıdır. Daha az yaygın olsa da, bu yöntemi yönetilen bir nesnede kullanarak nesnenin COM çağrılabilen sarmalayıcısına yönelik bir işaretçi elde edebilirsiniz. Örneğin, için bir arabirim işaretçisi System.Runtime.InteropServices.UCOMIConnectionPointContaineralmak üzere COM'a aktarılan bir yönetilen nesnede kullanabilirsinizGetComInterfaceForObject<T,TInterface>(T).

Yöntem GetComInterfaceForObject<T,TInterface>(T) aşırı yüklemesi, sorgu arabiriminin varsayılan olarak özelleştirilmesini sağlar. Sorgu arabirimi özelleştirmesinin uygulanıp uygulanmayacağını belirtmek için yöntem aşırı yüklemesini GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) kullanın.

Ek bilgi için COM Çağrılabilen Sarmalayıcı ve Çalışma Zamanı Çağrılabilen Sarmalayıcı makalelerine bakın.

Şunlara uygulanır