Marshal.GetObjectForIUnknown(IntPtr) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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:
COM nesnesi için IProvideClassInfo arabirimini uygulayın.
İçeren derlemeyi Regasm.exe (Derleme Kayıt Aracı) kaydedin.
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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin