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 tramite 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
.
Restituisce
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 GetObjectForIUnknown è un Runtime Callable Wrapper, che Common Language Runtime gestisce 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 un tipo di base, purché l'oggetto COM implementi l'interfaccia IDispatch . Analogamente, è possibile eseguire il cast dell'oggetto restituito in un'interfaccia COM appropriata.
Affinché un oggetto venga sottoposto a wrapping con un tipo di classe gestito specifico (e non con 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 .
Si applica a
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per