Marshal.GetComInterfaceForObject Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Olyan illesztőmutatót ad vissza, amely egy objektum felületét jelöli.
Túlterhelések
| Name | Description |
|---|---|
| GetComInterfaceForObject(Object, Type) |
Elavult.
Egy mutatót ad vissza egy IUnknown felületre, amely a megadott illesztőt jelöli a megadott objektumon. Alapértelmezés szerint engedélyezve van az egyéni lekérdezési felület elérése. |
| GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) |
Elavult.
Egy mutatót ad vissza egy IUnknown felületre, amely a megadott illesztőt jelöli a megadott objektumon. Az egyéni lekérdezési felület elérését a megadott testreszabási mód szabályozza. |
| GetComInterfaceForObject<T,TInterface>(T) |
Egy mutatót ad vissza egy IUnknown felületre, amely a megadott illesztőt jelöli egy adott típusú objektumon. Alapértelmezés szerint engedélyezve van az egyéni lekérdezési felület elérése. |
GetComInterfaceForObject(Object, Type)
- Forrás:
- Marshal.NoCom.cs
- Forrás:
- Marshal.NoCom.cs
- Forrás:
- Marshal.NoCom.cs
- Forrás:
- Marshal.NoCom.cs
- Forrás:
- Marshal.NoCom.cs
Figyelemfelhívás
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
Egy mutatót ad vissza egy IUnknown felületre, amely a megadott illesztőt jelöli a megadott objektumon. Alapértelmezés szerint engedélyezve van az egyéni lekérdezési felület elérése.
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
Paraméterek
- o
- Object
Az interfészt biztosító objektum.
- T
- Type
A kért felület típusa.
Válaszok
nativeint
Az objektum megadott felületét jelképező illesztőmutató.
- Attribútumok
Kivételek
A T paraméter nem interfész.
-vagy-
A típus nem látható a COM számára.
-vagy-
A T paraméter egy általános típusdefiníció.
A o paraméter nem támogatja a kért felületet.
Megjegyzések
Ez a metódus egy felületmutatót ad vissza, amely a kért felületet jelöli a megadott objektumon. Különösen akkor hasznos, ha olyan nem felügyelt metódust használ, amely várhatóan át fog adni egy interfészmutatót. Ha ezzel a metódussal meghív egy objektumot, a hivatkozásszám a mutató visszaadása előtt növekszik az illesztőmutatón. Marshal.Release A hivatkozási szám mindig a mutatóval való befejezése után csökken. Nyers COM-felületi mutatók használatakor be kell tartania a COM által meghatározott szabályokat.
GetComInterfaceForObject(Object, Type) akkor hasznos, ha olyan metódust hív meg, amely egy COM-objektumparamétert tesz elérhetővé típusként IntPtr vagy egyéni marsallással. Bár kevésbé gyakori, ez a módszer felügyelt objektumon is használható az objektum COM-hívásra hívható burkolójára mutató mutató lekéréséhez. Használhatja például GetComInterfaceForObject(Object, Type) a COM-ba exportált felügyelt objektumokon a felület mutatójának lekéréséhez System.Runtime.InteropServices.UCOMIConnectionPointContainer. Az osztályfelületre mutató mutató nem kérhető le, mivel az osztályillesztő nem rendelkezik a megfelelő típussal, amely a második paraméternek (t) felel meg.
Marshal.GetIDispatchForObject Ehelyett a COM hívható burkoló alapértelmezett felületén hívja meg a tagokat, ami általában egy automatikus küldési osztály felület.
A GetComInterfaceForObject(Object, Type) metódus túlterhelése alapértelmezés szerint lehetővé teszi a lekérdezési felület testreszabását. A lekérdezési felület testreszabásának megadásához használja a metódus túlterhelését GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) .
További információ: COM Callable Burkoló és Runtime Callable Burkoló cikkek.
Lásd még
- GetComInterfaceForObjectInContext(Object, Type)
- ComImportAttribute
- Release(IntPtr)
- UCOMIConnectionPointContainer
- GetIDispatchForObject(Object)
A következőre érvényes:
GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)
- Forrás:
- Marshal.NoCom.cs
- Forrás:
- Marshal.NoCom.cs
- Forrás:
- Marshal.NoCom.cs
- Forrás:
- Marshal.NoCom.cs
- Forrás:
- Marshal.NoCom.cs
Figyelemfelhívás
GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) and support for ICustomQueryInterface may be unavailable in future releases.
Egy mutatót ad vissza egy IUnknown felületre, amely a megadott illesztőt jelöli a megadott objektumon. Az egyéni lekérdezési felület elérését a megadott testreszabási mód szabályozza.
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
Paraméterek
- o
- Object
Az interfészt biztosító objektum.
- T
- Type
A kért felület típusa.
Az egyik számbavételi érték, amely azt jelzi, hogy egy adott felhasználó által IUnknown::QueryInterfacemegadott testreszabást kell-e alkalmazniICustomQueryInterface.
Válaszok
nativeint
Az objektum felületét jelképező illesztőmutató.
- Attribútumok
Kivételek
A T paraméter nem interfész.
-vagy-
A típus nem látható a COM számára.
-vagy-
A T paraméter egy általános típusdefiníció.
Az objektum o nem támogatja a kért felületet.
Megjegyzések
GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) lehetővé teszi annak megadását, hogy alkalmazza-e a lekérdezési felület testreszabását. A túlterhelés használatával alapértelmezés szerint alkalmazhatja a GetComInterfaceForObject(Object, Type) lekérdezési felület testreszabását.
A következőre érvényes:
GetComInterfaceForObject<T,TInterface>(T)
- Forrás:
- Marshal.NoCom.cs
- Forrás:
- Marshal.NoCom.cs
- Forrás:
- Marshal.NoCom.cs
- Forrás:
- Marshal.NoCom.cs
- Forrás:
- Marshal.NoCom.cs
Egy mutatót ad vissza egy IUnknown felületre, amely a megadott illesztőt jelöli egy adott típusú objektumon. Alapértelmezés szerint engedélyezve van az egyéni lekérdezési felület elérése.
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ípusparaméterek
- T
A típus o.
- TInterface
A visszaadandó felület típusa.
Paraméterek
- o
- T
Az interfészt biztosító objektum.
Válaszok
nativeint
Az interfészt jelképező TInterface mutató.
- Attribútumok
Kivételek
A TInterface paraméter nem interfész.
-vagy-
A típus nem látható a COM számára.
-vagy-
A T paraméter egy nyitott általános típus.
A o paraméter nem támogatja az interfészt TInterface .
A o paraméter a következő null: .
Megjegyzések
Ez a metódus egy illesztőmutatót ad vissza, amely a TInterface megadott objektum felületét jelöli. Különösen akkor hasznos, ha olyan nem felügyelt metódust használ, amely várhatóan át fog adni egy interfészmutatót. Ha ezzel a metódussal meghív egy objektumot, a hivatkozásszám a mutató visszaadása előtt növekszik az illesztőmutatón. Mindig használja a metódust a Marshal.Release hivatkozás számának csökkenéséhez, ha befejezte az egérmutatót. Nyers COM-felületi mutatók használatakor be kell tartania a COM által meghatározott szabályokat.
GetComInterfaceForObject<T,TInterface>(T) akkor hasznos, ha olyan metódust hív meg, amely egy COM-objektumparamétert tesz elérhetővé típusként IntPtr vagy egyéni marsallással. Ez a módszer felügyelt objektumokon is használható az objektum COM-hívható burkolójára mutató mutató lekéréséhez, bár ez kevésbé gyakori. Használhatja például GetComInterfaceForObject<T,TInterface>(T) a COM-ba exportált felügyelt objektumokon a felület mutatójának lekéréséhez System.Runtime.InteropServices.UCOMIConnectionPointContainer.
A GetComInterfaceForObject<T,TInterface>(T) metódus túlterhelése alapértelmezés szerint lehetővé teszi a lekérdezési felület testreszabását. A lekérdezési felület testreszabásának megadásához használja a metódus túlterhelését GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode) .
További információ: COM Callable Burkoló és Runtime Callable Burkoló cikkek.