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í
| Name | Description |
|---|---|
| GetComInterfaceForObject(Object, Type) |
Zastaralé.
Vrátí ukazatel na IUnknown rozhraní, které představuje zadané rozhraní zadaného objektu. Ve výchozím nastavení je povolený přístup k vlastnímu rozhraní dotazů. |
| GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) |
Zastaralé.
Vrátí ukazatel na IUnknown rozhraní, které představuje zadané rozhraní zadaného objektu. Přístup k rozhraní vlastních dotazů je řízen 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. Ve výchozím nastavení je povolený přístup k vlastnímu rozhraní dotazů. |
GetComInterfaceForObject(Object, Type)
- Zdroj:
- Marshal.NoCom.cs
- Zdroj:
- Marshal.NoCom.cs
- 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 IUnknown rozhraní, které představuje zadané rozhraní zadaného objektu. Ve výchozím nastavení je povolený přístup k vlastnímu rozhraní dotazů.
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 požadovaného rozhraní.
Návraty
nativeint
Ukazatel rozhraní, který představuje zadané rozhraní objektu.
- 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 zvlášť užitečné, pokud 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. Po dokončení ukazatele vždy používejte Marshal.Release k dekrementování počtu odkazů. Při použití nezpracovaných ukazatelů rozhraní MODELU COM musíte 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 vlastní zařazování. I když méně časté, můžete tuto metodu použít u spravovaného objektu k získání ukazatele na obálku com volatelného 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. Ukazatel na rozhraní třídy nelze získat, protože rozhraní třídy nemá odpovídající typ, který se má předat druhému parametru (t). Místo toho se používá Marshal.GetIDispatchForObject k vyvolání členů ve výchozím rozhraní obálky COM, která je obvykle rozhraním 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 použít přizpůsobení rozhraní dotazu, použijte GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) přetížení metody.
Další informace naleznete 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
- 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 IUnknown rozhraní, které představuje zadané rozhraní zadaného objektu. Přístup k rozhraní vlastních dotazů je řízen 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 požadovaného rozhraní.
Jedna z hodnot výčtu, která označuje, zda použít IUnknown::QueryInterface vlastní nastavení, které je zadáno .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í dotazů. GetComInterfaceForObject(Object, Type) Přetížení použijte k použití přizpůsobení rozhraní dotazů ve výchozím nastavení.
Platí pro
GetComInterfaceForObject<T,TInterface>(T)
- Zdroj:
- Marshal.NoCom.cs
- Zdroj:
- Marshal.NoCom.cs
- 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. Ve výchozím nastavení je povolený přístup k vlastnímu rozhraní dotazů.
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 zvlášť užitečné, pokud 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žijte metodu Marshal.Release k dekrementování počtu odkazů po dokončení ukazatelem. Při použití nezpracovaných ukazatelů rozhraní MODELU COM musíte 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 vlastní zařazování. Tuto metodu můžete použít také u spravovaného objektu k získání ukazatele na obálku volatelného modelu COM objektu, 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 použít přizpůsobení rozhraní dotazu, použijte GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) přetížení metody.
Další informace naleznete v článcích com Callable Wrapper a Runtime Callable Wrapper .