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.

C#
[System.Security.SecurityCritical]
public static object GetObjectForIUnknown(IntPtr pUnk);
C#
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static object GetObjectForIUnknown(IntPtr pUnk);
C#
public static object GetObjectForIUnknown(IntPtr pUnk);

Parametreler

pUnk
IntPtr

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

Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Ayrıca bkz.