Marshal.GetObjectForIUnknown(IntPtr) Yöntem

Tanım

IUnknown arabirimine yönelik bir işaretçiyle COM nesnesini temsil eden bir türün örneğini döndürür.

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

Parametreler

pUnk
IntPtr

nativeint

Arabirimin işaretçisi IUnknown .

Döndürülenler

Belirtilen yönetilmeyen COM nesnesini temsil eden bir nesne.

Öznitelikler

Özel durumlar

pUnk, Zero değeridir.

Açıklamalar

Bu yöntem yönetilen bir nesnede sarmalar IUnknown . Bu, COM bileşeninin başvuru sayısını artırmanın etkisine sahiptir. Çalışma zamanı COM nesnesini temsil eden yönetilen nesnede çöp toplama işlemi gerçekleştirdiğinde başvuru sayısı azalacaktır.

pUnk parametresi bir IUnknown arabirim işaretçisini temsil eder; ancak tüm COM arabirimleri doğrudan veya dolaylı olarak öğesinden IUnknowntüretildiği için bu yönteme herhangi bir COM arabirimi geçirebilirsiniz. tarafından GetObjectForIUnknown döndürülen nesne, ortak dil çalışma zamanının diğer yönetilen nesneler gibi yönettiği Bir Çalışma Zamanı Çağrılabilen Sarmalayıcı'dır. Bu sarmalayıcının türü genellikle bir temel System.__ComObject türdür ve sarmalayıcı türü belirsiz olduğunda kullanılan gizli bir türdür. COM nesnesi IDispatch arabirimini uyguladığı sürece yine de böyle bir temel türe geç bağlı çağrılar yapabilirsiniz. Benzer şekilde, döndürülen nesneyi uygun bir COM arabirimine dönüştürebilirsiniz.

Bir nesnenin belirli bir yönetilen sınıf türüyle sarmalanması için (genel sarmalayıcı türüyle değil), aşağıdaki gereksinimlere uymanız gerekir:

Alternatif olarak, bu gereksinimleri önleyebilir ve yine de yöntemini kullanarak Marshal.GetTypedObjectForIUnknown belirli bir yönetilen sınıf türüyle sarmalanmış bir nesne alabilirsiniz.

Şunlara uygulanır

Ayrıca bkz.