OLE Nesneleri ve ActiveX Kontrolleri
OLE Nesneleri ve ActiveX Denetimleri
Aspose.Words FOSS for .NET, gömülü OLE nesneleri ve Forms 2.0 ActiveX denetimlerine OleFormat giriş noktası ve Aspose.Words.Drawing ile Aspose.Words.Drawing.Ole‘deki ilgili sınıflar aracılığıyla okuma erişimi sağlar.
Gömülü OLE Nesne Verilerine Erişim
OleFormat, gömülü bir Shape tarafından ortaya çıkar ve gömülü nesnenin ham veri ve meta verilerine erişim sağlar. SuggestedFileName ve SuggestedExtension, gömülü nesnenin nasıl kaydedileceğini tanımlar, ProgId onu oluşturan OLE sunucu uygulamasını belirler ve IsLink, bağlanmış bir nesneyi (SourceFullName/SourceItem dış kaynağa işaret eder) tam gömülü olandan ayırır. GetOleEntry(oleEntryName), OLE birleşik dosya yapısından belirli adlandırılmış bir akışı okur, GetRawData() tam ham nesne verilerini döndürür ve Save(fileName) / Save(stream), gömülü nesnenin yerel verilerini diske ya da bir akıma yazar — bu, orijinal gömülü dosyayı (örneğin gömülü bir elektronik tablo veya sunum) yerel uygulamasında açmadan çıkarmak için kullanışlıdır. OlePackage, OleFormat.OlePackage aracılığıyla ulaşılır, OLE Paketi olarak gömülmüş nesneler için FileName ve DisplayName ortaya koyar.
Forms 2.0 ActiveX Denetimleriyle Çalışma
Yerleşik nesne bir Microsoft Forms 2.0 ActiveX denetimi (gömülü belgeler yerine onay kutuları, metin kutuları, birleşik kutular ve benzeri etkileşimli denetimler) olduğunda, OleFormat.OleControl bir OleControl döndürür. IsForms2OleControl özelliğini kontrol edin ve true ise, Forms2OleControl‘e (tüm Forms 2.0 denetimlerinin soyut temel sınıfı) dönüştürün; böylece denetim-özel özelliklere ulaşabilirsiniz: Caption, Value, Enabled, Type (bir Forms2OleControlType değeri — CheckBox, Textbox, ComboBox, OptionButton, ListBox, CommandButton ve diğerleri), ayrıca görsel özellikler ForeColor, BackColor, Width ve Height. Çerçeveler gibi kapsayıcı denetimler, iç içe denetimlerini ChildNodes üzerinden, bir Forms2OleControlCollection aracılığıyla ortaya çıkarır.
İpuçları ve En İyi Uygulamalar
- Yerel olarak gömülü nesne verisinin mevcut olduğunu varsamadan önce
OleFormat.IsLinkkontrol edin — bağlanmış nesneler, içeriklerini gömmek yerineSourceFullNamearacılığıyla harici bir dosyaya referans verir. - Gömülü nesneleri toplu olarak çıkarırken mantıklı bir çıktı dosya adı oluşturmak için
SuggestedExtensionileSave()birlikte kullanın. Forms2OleControl‘e dönüştürmeden önce her zamanOleControl.IsForms2OleControlkontrol edin — herOleControlbir Forms 2.0 kontrolü değildir.Forms2OleControlCollection.CountveGetEnumerator()aracılığıyla sayma, bir çerçeve veya çok sayfalı konteyner kontrolü içindeki iç içe geçmiş kontrolleri dolaşmanızı sağlar.
Yaygın Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
GetRawData() beklenmeyen/boş veri döndürür | Nesne bir bağlantı (IsLink == true), gömülü değil | Önce IsLink‘ı kontrol edin; bağlantılı nesneler için SourceFullName‘ı çözün |
InvalidCastException OleControl‘i Forms2OleControl‘ye dönüştürüyor | Denetim bir Forms 2.0 denetimi değil | Dönüştürmeden önce IsForms2OleControl kontrol edin |
GetOleEntry(), adlandırılmış bir akış için null döndürür | Akış adı bu nesnenin birleşik dosya yapısında bulunmuyor | Gerçek giriş adlarını, sabit bir ad varsaymak yerine listeleyin |
| Bir çerçeve içindeki iç içe geçmiş denetimler bulunamadı | Yalnızca üst düzey OleControl kontrol edildi, ChildNodes değil | Kapsayıcı denetimler için Forms2OleControl.ChildNodes içine yineleyin |
FAQ
Word belgesinden gömülü bir Excel veya PowerPoint nesnesini nasıl çıkarabilirim?
Şeklin OleFormat‘na erişin, ardından gömülü nesnenin yerel baytlarını almak için Save(fileName) veya GetRawData() çağırın; çıktıyı uygun şekilde adlandırmak için SuggestedExtension‘ı kullanın.
Gömülü bir OLE nesnesi ile Forms 2.0 kontrolü arasındaki fark nedir?
Gömülü bir OLE nesnesi (OleFormat aracılığıyla doğrudan erişilir) tipik olarak başka bir belgedir (elektronik tablo, sunum); bir Forms 2.0 kontrolü (OleFormat.OleControl → Forms2OleControl) ise onay kutusu veya metin kutusu gibi etkileşimli bir UI öğesidir.
Bir OLE nesnesinin gömülü değil, bağlı olduğunu nasıl anlayabilirim?
OleFormat.IsLink kontrol edin — true olduğunda, SourceFullName ve SourceItem nesnenin kendi verisini taşıması yerine harici kaynağı tanımlar.
Bir onay kutusu kontrolünün başlığını veya değerini okuyabilir miyim?
Evet — OleControl‘ı Forms2OleControl‘e dönüştürün ( IsForms2OleControl‘i doğruladıktan sonra) ve Caption ile Value‘ü okuyun.
API Reference Özeti
| Sınıf / Metod | Açıklama |
|---|---|
OleFormat | Yerleştirilmiş bir OLE nesnesinin veri ve meta verileri için giriş noktası |
OleFormat.GetRawData() | Ham gömülü nesne baytlarını al |
OleFormat.Save() | Yerleştirilmiş nesnenin yerel verisini bir dosyaya veya akışa kaydet |
OlePackage | OLE Package nesnesi için dosya adı/görünüm adı |
OleControl | Gömülü ActiveX kontrolünün temel temsili |
Forms2OleControl | Microsoft Forms 2.0 kontrolü (onay kutusu, metin kutusu, açılır kutu, vb.) |
Forms2OleControlCollection | Alt Forms2OleControl düğümlerinin koleksiyonu (ör. bir çerçeve içinde) |
Forms2OleControlType | Forms 2.0 kontrol türlerinin enum’ı |