OLE-objektumok és ActiveX-vezérlők

OLE-objektumok és ActiveX-vezérlők

OLE objektumok és ActiveX vezérlők

Aspose.Words FOSS for .NET olvasási hozzáférést biztosít a beágyazott OLE objektumokhoz és a Forms 2.0 ActiveX vezérlőkhöz a OleFormat belépési ponton keresztül, és a Aspose.Words.Drawing és Aspose.Words.Drawing.Ole kapcsolódó osztályaiban.


Beágyazott OLE-objektum adatainak elérése

OleFormat egy beágyazott Shape által van kitéve, és hozzáférést biztosít a beágyazott objektum nyers adatáihoz és metaadataihoz. SuggestedFileName és SuggestedExtension leírják, hogy milyen formátumban mentenének a beágyazott objektumot, ProgId azonosítja a létrehozó OLE szerveralkalmazást, és IsLink megkülönbözteti a hivatkozott objektumot (SourceFullName/SourceItem az külső forrást jelölik) egy teljesen beágyazotttól. GetOleEntry(oleEntryName) beolvas egy konkrét, nevű adatfolyamot az OLE összetett fájlstruktúrából, GetRawData() visszaadja a teljes nyers objektum adatot, és Save(fileName) / Save(stream) kiírják a beágyazott objektum natív adatait lemezre vagy adatfolyamba – hasznos az eredeti beágyazott fájl (például egy beágyazott táblázat vagy prezentáció) kinyeréséhez anélkül, hogy annak natív alkalmazásában megnyitnánk. OlePackage, amely a OleFormat.OlePackage útján érhető el, elérhetővé teszi a FileName és DisplayName objektumokat, amelyek OLE Package-ként vannak beágyazva.


A Forms 2.0 ActiveX vezérlők használata

Ha a beágyazott objektum egy Microsoft Forms 2.0 ActiveX vezérlő (jelölőnégyzetek, szövegmezők, legördülő listák és hasonló interaktív vezérlők, nem pedig beágyazott dokumentumok), akkor a OleFormat.OleControl egy OleControl-t ad vissza. Ellenőrizze a IsForms2OleControl tulajdonságát, és ha true, akkor castolja Forms2OleControl-re (az összes Forms 2.0 vezérlő absztrakt bázisosztálya), hogy elérje a vezérlőspecifikus tulajdonságokat: Caption, Value, Enabled, Type (egy Forms2OleControlType érték – CheckBox, Textbox, ComboBox, OptionButton, ListBox, CommandButton és mások), valamint a vizuális tulajdonságok ForeColor, BackColor, Width és Height. A konténer vezérlők, például a keretek, a beágyazott vezérlőiket a ChildNodes útján teszik elérhetővé, ami egy Forms2OleControlCollection.


Tippek és bevált gyakorlatok

  • Ellenőrizze a(z) OleFormat.IsLink értékét, mielőtt azt feltételezné, hogy a beágyazott objektum adatai helyben vannak — a hivatkozott objektumok egy külső fájlra hivatkoznak a(z) SourceFullName használatával a tartalom beágyazása helyett.
  • Használja a(z) SuggestedExtension és a(z) Save() kombinációját, hogy tömegesen beágyazott objektumok kicsomagolásakor értelmes kimeneti fájlnevet állítson elő.
  • Mindig ellenőrizze a(z) OleControl.IsForms2OleControl értékét, mielőtt Forms2OleControl típusra konvertálna — nem minden OleControl egy Forms 2.0 vezérlő.
  • A(z) Forms2OleControlCollection.Count és a(z) GetEnumerator() szerinti felsorolás lehetővé teszi a beágyazott vezérlők bejárását egy keret vagy többoldalas tárolóvezérlő belsejében.

Gyakori problémák

ProblémaOkJavítás
GetRawData() váratlan/üres adatot ad visszaAz objektum egy hivatkozás (IsLink == true), nem beágyazottEllenőrizze előbb a IsLink értéket; oldja fel a SourceFullName értéket a hivatkozott objektumoknál
InvalidCastException átalakítja a OleControl típusát Forms2OleControl típusraA vezérlő nem Forms 2.0 vezérlőEllenőrizze a(z) IsForms2OleControl értékét a konvertálás előtt
GetOleEntry() null értéket ad vissza egy névvel ellátott stream eseténA stream neve nem létezik ennek az objektumnak az összetett fájlstruktúrájábanSorolja fel a tényleges bejegyzésneveket ahelyett, hogy egy rögzített nevet feltételezne
Beágyazott vezérlők a kereten belül nem találhatókCsak a felső szintű OleControl lett ellenőrizve, nem a ChildNodesRekurzív módon lépjen be a Forms2OleControl.ChildNodes konténervezérlőkbe

FAQ

Hogyan tudok egy beágyazott Excel vagy PowerPoint objektumot kinyerni egy Word-dokumentumból?

Érje el a forma OleFormat elemét, majd hívja a(z) Save(fileName) vagy GetRawData() metódust a beágyazott objektum natív bájtjainak lekéréséhez; a(z) SuggestedExtension segítségével nevezze el megfelelően a kimeneti fájlt.

Mi a különbség egy beágyazott OLE objektum és egy Forms 2.0 vezérlő között?

Egy beágyazott OLE objektum (amelyet közvetlenül a OleFormat használ) általában egy másik dokumentum (táblázat, prezentáció); egy Forms 2.0 vezérlő (OleFormat.OleControl → Forms2OleControl) egy interaktív felhasználói felület elem, például jelölőnégyzet vagy szövegdoboz.

Hogyan tudom megállapítani, hogy egy OLE objektum linkelt-e a beágyazott helyett?

Ellenőrizze a OleFormat.IsLink — ha a true, SourceFullName és SourceItem a külső forrást írják le, ahelyett, hogy az objektum saját adatokat hordozna.

Ki tudom olvasni egy jelölőnégyzet vezérlő feliratát vagy értékét?

Igen — konvertálja a OleControl típusát Forms2OleControl-re (miután megerősítette a IsForms2OleControl) és olvassa a Caption és a Value értékeket.


API Reference összefoglaló

Osztály / MetódusLeírás
OleFormatBelépési pont egy beágyazott OLE-objektum adatainak és metaadatai számára
OleFormat.GetRawData()A beágyazott objektum nyers bájtjainak lekérése
OleFormat.Save()A beágyazott objektum natív adatainak mentése fájlba vagy adatfolyamba
OlePackageFájlnév/megjelenített név egy OLE Package objektumhoz
OleControlBeágyazott ActiveX vezérlő alapreprezentációja
Forms2OleControlMicrosoft Forms 2.0 vezérlő (jelölőnégyzet, szövegmező, kombinált lista, stb.)
Forms2OleControlCollectionGyermek Forms2OleControl csomópontok gyűjteménye (pl. egy keretben)
Forms2OleControlTypeA Forms 2.0 vezérlőfajták felsorolása

Lásd még:

 Magyar