Marshal.GetComInterfaceForObject Metódus

Definíció

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

IntPtr

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.

A o paraméter a következő null: .

-vagy-

A T paraméter a következő null: .

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

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.

mode
CustomQueryInterfaceMode

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

IntPtr

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.

A o paraméter a következő null: .

-vagy-

A T paraméter a következő null: .

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

IntPtr

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.

A következőre érvényes: