Marshal.GetObjectForIUnknown(IntPtr) Yöntem

Tanım

BIR COM nesnesini IUnknown arabirimine işaretçiyle temsil eden bir tür örneği 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 nesneye sarmalar IUnknown . Bu, COM bileşeninin başvuru sayısını artırma etkisine sahiptir. Çalışma zamanı COM nesnesini temsil eden yönetilen nesnede çöp toplama 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 türetildiklerindenIUnknown, herhangi bir COM arabirimini bu yönteme geçirebilirsiniz. tarafından GetObjectForIUnknown döndürülen nesne, ortak dil çalışma zamanının başka bir yönetilen nesne 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.