Marshal.GetComInterfaceForObject Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí ukazatel rozhraní, který představuje rozhraní objektu.
Přetížení
GetComInterfaceForObject(Object, Type) |
Zastaralé.
Vrátí ukazatel na rozhraní IUnknown , které představuje zadané rozhraní na zadaném objektu. Přístup k rozhraní vlastních dotazů je ve výchozím nastavení povolený. |
GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) |
Zastaralé.
Vrátí ukazatel na rozhraní IUnknown , které představuje zadané rozhraní na zadaném objektu. Přístup k rozhraní vlastních dotazů se řídí zadaným režimem přizpůsobení. |
GetComInterfaceForObject<T,TInterface>(T) |
Vrátí ukazatel na IUnknown rozhraní, které představuje zadané rozhraní objektu zadaného typu. Přístup k rozhraní vlastních dotazů je ve výchozím nastavení povolený. |
GetComInterfaceForObject(Object, Type)
- Zdroj:
- Marshal.NoCom.cs
- Zdroj:
- Marshal.NoCom.cs
- Zdroj:
- Marshal.NoCom.cs
Upozornění
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
Vrátí ukazatel na rozhraní IUnknown , které představuje zadané rozhraní na zadaném objektu. Přístup k rozhraní vlastních dotazů je ve výchozím nastavení povolený.
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
Objekt, který poskytuje rozhraní.
- T
- Type
Typ rozhraní, které je požadováno.
Návraty
nativeint
Ukazatel rozhraní, který představuje zadané rozhraní pro objekt.
- Atributy
Výjimky
Parametr T
není rozhraní.
-nebo-
Typ není viditelný pro com.
-nebo-
Parametr T
je definice obecného typu.
Parametr o
nepodporuje požadované rozhraní.
Poznámky
Tato metoda vrátí ukazatel rozhraní, který představuje požadované rozhraní na zadaném objektu. Je to užitečné zejména v případě, že máte nespravovanou metodu, která očekává předání ukazatele rozhraní. Volání objektu pomocí této metody způsobí, že se počet odkazů zvýší na ukazatel rozhraní před vrácením ukazatele. Vždy používejte Marshal.Release ke snížení počtu odkazů, jakmile s ukazatelem dokončíte. Při použití nezpracovaných ukazatelů rozhraní COM je nutné dodržovat pravidla definovaná objektem COM.
GetComInterfaceForObject(Object, Type) je užitečný při volání metody, která zveřejňuje parametr objektu COM jako IntPtr typ nebo s vlastním zařazováním. I když je tato metoda méně častá, můžete tuto metodu použít u spravovaného objektu k získání ukazatele na volatelnou obálku com objektu. Můžete například použít GetComInterfaceForObject(Object, Type) u spravovaného objektu, který je exportován do modelu COM, k získání ukazatele rozhraní pro System.Runtime.InteropServices.UCOMIConnectionPointContainer. Nelze získat ukazatel na rozhraní třídy, protože rozhraní třídy nemá odpovídající typ pro předání druhému parametru (t
). Místo toho použijte Marshal.GetIDispatchForObject k vyvolání členů ve výchozím rozhraní volatelné obálky COM, což je obvykle rozhraní třídy automatického odeslání.
Přetížení GetComInterfaceForObject(Object, Type) metody umožňuje přizpůsobení rozhraní dotazu ve výchozím nastavení. Chcete-li určit, zda se má použít přizpůsobení rozhraní dotazu, použijte GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) přetížení metody.
Další informace najdete v článcích Com Callable Wrapper a Runtime Callable Wrapper .
Viz také
- GetComInterfaceForObjectInContext(Object, Type)
- ComImportAttribute
- Release(IntPtr)
- UCOMIConnectionPointContainer
- GetIDispatchForObject(Object)
Platí pro
GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)
- Zdroj:
- Marshal.NoCom.cs
- Zdroj:
- Marshal.NoCom.cs
- Zdroj:
- Marshal.NoCom.cs
Upozornění
GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) and support for ICustomQueryInterface may be unavailable in future releases.
Vrátí ukazatel na rozhraní IUnknown , které představuje zadané rozhraní na zadaném objektu. Přístup k rozhraní vlastních dotazů se řídí zadaným režimem přizpůsobení.
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
Objekt, který poskytuje rozhraní.
- T
- Type
Typ rozhraní, které je požadováno.
Jedna z hodnot výčtu, která označuje, zda se má použít IUnknown::QueryInterface
vlastní nastavení poskytované objektem ICustomQueryInterface.
Návraty
nativeint
Ukazatel rozhraní, který představuje rozhraní objektu.
- Atributy
Výjimky
Parametr T
není rozhraní.
-nebo-
Typ není viditelný pro com.
-nebo-
Parametr T
je definice obecného typu.
Objekt o
nepodporuje požadované rozhraní.
Poznámky
GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) umožňuje určit, zda se má použít přizpůsobení rozhraní dotazu. GetComInterfaceForObject(Object, Type) K použití přizpůsobení rozhraní dotazu ve výchozím nastavení použijte přetížení.
Platí pro
GetComInterfaceForObject<T,TInterface>(T)
- Zdroj:
- Marshal.NoCom.cs
- Zdroj:
- Marshal.NoCom.cs
- Zdroj:
- Marshal.NoCom.cs
Vrátí ukazatel na IUnknown rozhraní, které představuje zadané rozhraní objektu zadaného typu. Přístup k rozhraní vlastních dotazů je ve výchozím nastavení povolený.
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 rozhraní, které se má vrátit.
Parametry
- o
- T
Objekt, který poskytuje rozhraní.
Návraty
nativeint
Ukazatel rozhraní, který představuje TInterface
rozhraní.
- Atributy
Výjimky
Parametr TInterface
není rozhraní.
-nebo-
Typ není viditelný pro com.
-nebo-
Parametr T
je otevřený obecný typ.
Parametr o
nepodporuje TInterface
rozhraní.
Parametr o
je null
.
Poznámky
Tato metoda vrátí ukazatel rozhraní, který představuje TInterface
rozhraní na zadaném objektu. Je to užitečné zejména v případě, že máte nespravovanou metodu, která očekává předání ukazatele rozhraní. Volání objektu pomocí této metody způsobí, že se počet odkazů zvýší na ukazatel rozhraní před vrácením ukazatele. Vždy používejte metodu Marshal.Release ke snížení počtu odkazů po dokončení s ukazatelem. Při použití nezpracovaných ukazatelů rozhraní COM je nutné dodržovat pravidla definovaná objektem COM.
GetComInterfaceForObject<T,TInterface>(T) je užitečný při volání metody, která zveřejňuje parametr objektu COM jako IntPtr typ nebo s vlastním zařazováním. Tuto metodu můžete použít také u spravovaného objektu k získání ukazatele na obálku volatelného objektu COM, i když je to méně běžné. Můžete například použít GetComInterfaceForObject<T,TInterface>(T) u spravovaného objektu, který je exportován do modelu COM, k získání ukazatele rozhraní pro System.Runtime.InteropServices.UCOMIConnectionPointContainer.
Přetížení GetComInterfaceForObject<T,TInterface>(T) metody umožňuje přizpůsobení rozhraní dotazu ve výchozím nastavení. Chcete-li určit, zda se má použít přizpůsobení rozhraní dotazu, použijte GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) přetížení metody.
Další informace najdete v článcích Com Callable Wrapper a Runtime Callable Wrapper .
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro