Marshal.GetObjectForIUnknown(IntPtr) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Restituisce un'istanza di un tipo che rappresenta un oggetto COM da un puntatore alla relativa interfaccia IUnknown .
public:
static System::Object ^ GetObjectForIUnknown(IntPtr pUnk);
[System.Security.SecurityCritical]
public static object GetObjectForIUnknown(IntPtr pUnk);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static object GetObjectForIUnknown(IntPtr pUnk);
public static object GetObjectForIUnknown(IntPtr pUnk);
[<System.Security.SecurityCritical>]
static member GetObjectForIUnknown : nativeint -> obj
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member GetObjectForIUnknown : nativeint -> obj
static member GetObjectForIUnknown : nativeint -> obj
Public Shared Function GetObjectForIUnknown (pUnk As IntPtr) As Object
Parametri
- pUnk
-
IntPtr
nativeint
Puntatore all'interfaccia IUnknown.
Valori restituiti
Oggetto che rappresenta l'oggetto COM non gestito specificato.
- Attributi
Eccezioni
pUnk è Zero.
Commenti
Questo metodo esegue il IUnknown wrapping in un oggetto gestito. Questo ha l'effetto di incrementare il conteggio dei riferimenti del componente COM. Il conteggio dei riferimenti verrà decrementato quando il runtime esegue l'operazione di Garbage Collection sull'oggetto gestito che rappresenta l'oggetto COM.
Il pUnk parametro rappresenta un IUnknown puntatore all'interfaccia. Tuttavia, poiché tutte le interfacce COM derivano direttamente o indirettamente da IUnknown, è possibile passare qualsiasi interfaccia COM a questo metodo. L'oggetto restituito da è un wrapper chiamabile di runtime, gestito da GetObjectForIUnknown Common Language Runtime come qualsiasi altro oggetto gestito. Il tipo di questo wrapper è spesso un tipo di base System.__ComObject , che è un tipo nascosto usato quando il tipo wrapper è ambiguo. È comunque possibile effettuare chiamate ad associazione tardiva a tale tipo di base, purché l'oggetto COM implementi l'interfaccia IDispatch . Analogamente, è possibile eseguire il cast dell'oggetto restituito a un'interfaccia COM appropriata.
Affinché un oggetto venga sottoposto a wrapping con un tipo di classe gestito specifico (e non un tipo wrapper generico), è necessario rispettare i requisiti seguenti:
Implementare l'interfaccia IProvideClassInfo per l'oggetto COM.
Registrare l'assembly contenitore con il Regasm.exe (Strumento di registrazione assembly).
In alternativa, è possibile evitare questi requisiti e ottenere comunque un oggetto di cui è stato eseguito il wrapping con un tipo di classe gestito specifico usando il Marshal.GetTypedObjectForIUnknown metodo .