Marshal.GetTypedObjectForIUnknown(IntPtr, Type) Metod

Definition

Returnerar ett hanterat objekt av en angiven typ som representerar ett COM-objekt.

public:
 static System::Object ^ GetTypedObjectForIUnknown(IntPtr pUnk, Type ^ t);
public static object GetTypedObjectForIUnknown(IntPtr pUnk, Type t);
[System.Security.SecurityCritical]
public static object GetTypedObjectForIUnknown(IntPtr pUnk, Type t);
static member GetTypedObjectForIUnknown : nativeint * Type -> obj
[<System.Security.SecurityCritical>]
static member GetTypedObjectForIUnknown : nativeint * Type -> obj
Public Shared Function GetTypedObjectForIUnknown (pUnk As IntPtr, t As Type) As Object

Parametrar

pUnk
IntPtr

nativeint

En pekare till gränssnittet för IUnknown det ohanterade objektet.

t
Type

Typ av begärd hanterad klass.

Returer

En instans av klassen som motsvarar objektet Type som representerar det begärda ohanterade COM-objektet.

Attribut

Undantag

t tillskrivs ComImportAttributeinte .

-eller-

t är en Windows Runtime typ.

Kommentarer

Parametern t måste vara antingen en COM-importerad typ eller en undertyp av en COM-importerad typ. Dessutom t måste vara en typ vars metadata importerades av verktyget Tlbimp.exe (typbiblioteksimportör). Den här typen måste vara en klass och inte ett associerat samklassgränssnitt, som bär namnet på COM-klassen. Om Tlbimp.exe till exempel importerar Myclass som en klass med namnet MyclassClass och som ett samklassgränssnitt med namnet Myclassmåste du använda MyclassClass (inte Myclass) med den här metoden. Mer information om importerade klasser och samklassgränssnitt finns i Konvertering av importerad typ.

Om ett objekt redan har hämtats för parametern pUnkt ignoreras och det befintliga objektet returneras. pUnk representerar en IUnknown-gränssnittspekare . Men eftersom alla COM-gränssnitt härleds direkt eller indirekt från IUnknownkan du skicka alla COM-gränssnitt till den här metoden. Objektet som returneras av GetTypedObjectForIUnknown är en Runtime Callable Wrapper (RCW), som den vanliga språkkörningen hanterar precis som andra hanterade objekt.

Gäller för

Se även