Marshal.GetComInterfaceForObject Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir nesnenin arabirimini temsil eden bir arabirim işaretçisi döndürür.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| 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 denetlendi. |
| 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
- 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
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 tarafından görülemeyebilir.
-veya-
T parametresi genel bir tür tanımıdır.
o parametresi istenen arabirimi desteklemiyor.
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. Bir nesneyi bu yöntemle çağırmak, işaretçi döndürülmeden önce arabirim işaretçisinde başvuru sayısının artmalarına neden olur. İşaretçiyle işiniz bittiğinde her zaman başvuru sayısını azaltmaya yönelik kullanın Marshal.Release . Ham COM arabirim işaretçilerini kullanırken COM tarafından tanımlanan kurallara uymalı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 kullanışlıdır. Daha az yaygın olsa da, bu yöntemi yönetilen bir nesne üzerinde 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 elde etmek için GetComInterfaceForObject(Object, Type)COM'a aktarılan yönetilen bir nesnede kullanabilirsinizSystem.Runtime.InteropServices.UCOMIConnectionPointContainer. Sınıf arabirimi ikinci parametreye (t) geçirmek için karşılık gelen türde 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, varsayılan olarak sorgu arabirimi özelleştirmesine izin verir. 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.
- GetComInterfaceForObjectInContext(Object, Type)
- ComImportAttribute
- Release(IntPtr)
- UCOMIConnectionPointContainer
- GetIDispatchForObject(Object)
Şunlara uygulanır
GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)
- Kaynak:
- Marshal.NoCom.cs
- Kaynak:
- Marshal.NoCom.cs
- 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 denetlendi.
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ü.
tarafından IUnknown::QueryInterfacesağlanan bir ICustomQueryInterface özelleştirmenin uygulanıp uygulanmayacağını gösteren numaralandırma değerlerinden biri.
Döndürülenler
nativeint
Nesnenin arabirimini temsil eden arabirim işaretçisi.
- Öznitelikler
Özel durumlar
T parametresi bir arabirim değil.
-veya-
Türü COM tarafından görülemeyebilir.
-veya-
T parametresi genel bir tür tanımıdır.
Nesnesi o istenen arabirimi desteklemiyor.
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
- 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
nativeint
Arabirimi temsil eden arabirim işaretçisi TInterface .
- Öznitelikler
Özel durumlar
TInterface parametresi bir arabirim değil.
-veya-
Türü COM tarafından görülemeyebilir.
-veya-
T parametresi açık bir genel türdür.
o parametresi arabirimini TInterface desteklemiyor.
o parametresi null'dir.
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. Bir nesneyi bu yöntemle çağırmak, işaretçi döndürülmeden önce arabirim işaretçisinde başvuru sayısının artmalarına neden olur. İşaretçiyle Marshal.Release işiniz bittiğinde her zaman başvuru sayısını azaltma yöntemini kullanın. Ham COM arabirim işaretçilerini kullanırken COM tarafından tanımlanan kurallara uymalı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 kullanışlıdır. Daha az yaygın olsa da, bu yöntemi yönetilen bir nesne üzerinde 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 elde etmek için GetComInterfaceForObject<T,TInterface>(T)COM'a aktarılan yönetilen bir nesnede kullanabilirsinizSystem.Runtime.InteropServices.UCOMIConnectionPointContainer.
Yöntem GetComInterfaceForObject<T,TInterface>(T) aşırı yüklemesi, varsayılan olarak sorgu arabirimi özelleştirmesine izin verir. 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.