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.
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 IUnknown
tü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:
COM nesnesi için IProvideClassInfo arabirimini uygulayın.
İçeren derlemeyi Regasm.exe (Derleme Kayıt Aracı) ile 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.