אובייקטים של OLE ובקרי ActiveX
אובייקטים של OLE ובקרי ActiveX
Aspose.Words FOSS עבור .NET מספק גישה לקריאה לאובייקטים משובצים של OLE ובקרי Forms 2.0 ActiveX דרך נקודת הכניסה OleFormat והמחלקות הקשורות שלה ב-Aspose.Words.Drawing וב-Aspose.Words.Drawing.Ole.
גישה לנתוני אובייקט OLE משובץ
OleFormat נחשף על ידי Shape משובץ ומספק גישה לנתונים הגולמיים ולמטא-נתונים של האובייקט המשובץ. SuggestedFileName ו-SuggestedExtension מתארים כיצד האובייקט המשובץ יישמר, ProgId מזהה את יישום שרת ה-OLE שיצר אותו, ו-IsLink מבחין בין אובייקט מקושר (SourceFullName/SourceItem מצביעים על המקור החיצוני) לבין אובייקט משובץ לחלוטין. GetOleEntry(oleEntryName) קורא זרם בשם ספציפי ממבנה קובץ ה-OLE המשולב, GetRawData() מחזיר את כל הנתונים הגולמיים של האובייקט, ו-Save(fileName) / Save(stream) כותבים את הנתונים המקוריים של האובייקט המשובץ לדיסק או לזרם — שימושי לחילוץ הקובץ המשובץ המקורי (למשל גיליון אלקטרוני או מצגת משובצת) מבלי לפתוח אותו ביישום המקורי שלו. OlePackage, שנגיש דרך OleFormat.OlePackage, חושף את FileName ו-DisplayName עבור אובייקטים משובצים כ-OLE Package.
עבודה עם בקרי Forms 2.0 ActiveX
כאשר האובייקט המשובץ הוא בקר Microsoft Forms 2.0 ActiveX (תיבות סימון, תיבות טקסט, תיבות משולבות ובקרי אינטראקציה דומים ולא מסמכים משובצים), OleFormat.OleControl מחזיר OleControl. בדוק את המאפיין IsForms2OleControl, ואם true, המר אותו ל-Forms2OleControl (מחלקת הבסיס המופשטת לכל בקרי Forms 2.0) כדי לגשת למאפייני בקר ספציפיים: Caption, Value, Enabled, Type (ערך Forms2OleControlType — CheckBox, Textbox, ComboBox, OptionButton, ListBox, CommandButton, ואחרים), בנוסף למאפייני תצוגה ForeColor, BackColor, Width, ו-Height. בקרי מכולה כגון מסגרות חושפים את הבקרות המקוננות שלהם דרך ChildNodes, Forms2OleControlCollection.
טיפים ושיטות עבודה מומלצות
- בדוק את
OleFormat.IsLinkלפני שאתה מניח שהנתונים של האובייקט המוטמע קיימים מקומית — אובייקטים מקושרים מתייחסים לקובץ חיצוני באמצעותSourceFullNameבמקום לשלב את התוכן שלהם. - השתמש ב-
SuggestedExtensionיחד עםSave()כדי לשחזר שם קובץ פלט הגיוני בעת חילוץ אובייקטים מוטמעים בכמות גדולה. - תמיד בדוק את
OleControl.IsForms2OleControlלפני המרה ל-Forms2OleControl— לא כלOleControlהוא פקד Forms 2.0. Forms2OleControlCollection.Countוהאיטרציה דרךGetEnumerator()מאפשרות לך לעבור על פקדים מקוננים בתוך מסגרת או פקד מכולה רב-דפי.
בעיות נפוצות
| בעיה | סיבה | תיקון |
|---|---|---|
GetRawData() מחזיר נתונים בלתי צפויים/ריקים | האובייקט הוא קישור (IsLink == true), לא משובץ | בדוק תחילה את IsLink; פתרון SourceFullName עבור אובייקטים מקושרים |
InvalidCastException ממיר את OleControl ל-Forms2OleControl | הבקר אינו בקר של Forms 2.0 | בדוק את IsForms2OleControl לפני ההמרה |
GetOleEntry() מחזיר null עבור זרם בעל שם | שם הזרם אינו קיים במבנה הקובץ המורכב של האובייקט הזה | ספור את שמות הכניסות האמיתיים במקום להניח שם קבוע |
| בקרות מקוננות בתוך מסגרת לא נמצאו | נבדק רק את OleControl ברמה העליונה, ולא את ChildNodes | חזור לתוך Forms2OleControl.ChildNodes עבור בקרות מכולה |
FAQ
איך לחלץ אובייקט Excel או PowerPoint מוטמע ממסמך Word?
גש ל-OleFormat של הצורה, ואז קרא ל-Save(fileName) או ל-GetRawData() כדי לקבל את הבייטים המקוריים של האובייקט המוטמע; השתמש ב-SuggestedExtension כדי לקרוא לקובץ הפלט בצורה מתאימה.
מה ההבדל בין אובייקט OLE משובץ לבין פקד Forms 2.0?
אובייקט OLE משובץ (הנגיש ישירות באמצעות OleFormat) הוא בדרך כלל מסמך אחר (גיליון אלקטרוני, מצגת); פקד Forms 2.0 (OleFormat.OleControl → Forms2OleControl) הוא רכיב ממשק משתמש אינטראקטיבי כמו תיבת סימון או תיבת טקסט.
איך אני מזהה אם אובייקט OLE מקושר במקום להיות משובץ?
בדוק את OleFormat.IsLink — כאשר true, SourceFullName ו-SourceItem מתארים את המקור החיצוני במקום שהאובייקט נושא את הנתונים שלו.
האם אני יכול לקרוא את הכותרת או את הערך של פקד תיבת הסימון?
כן — המרת את OleControl ל-Forms2OleControl (לאחר אימות IsForms2OleControl) וקרא את Caption ו-Value.
API Reference סיכום
| מחלקה / מתודה | תיאור |
|---|---|
OleFormat | נקודת כניסה לנתוני האובייקט המוטמע של OLE ולמטא-נתונים שלו |
OleFormat.GetRawData() | קבל את בתיות האובייקט המוטמע הגולמיות |
OleFormat.Save() | שמור את הנתונים המקוריים של האובייקט המוטמע לקובץ או לזרם |
OlePackage | שם קובץ/שם תצוגה עבור אובייקט OLE Package |
OleControl | ייצוג בסיסי של פקודת ActiveX משובצת |
Forms2OleControl | פקודת Microsoft Forms 2.0 (תיבת סימון, תיבת טקסט, תיבת משולבת, וכו') |
Forms2OleControlCollection | אוסף של צמתים Forms2OleControl צאצאים (למשל בתוך מסגרת) |
Forms2OleControlType | Enum של סוגי פקודות Forms 2.0 |