אובייקטים של OLE ובקרי ActiveX

אובייקטים של 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 צאצאים (למשל בתוך מסגרת)
Forms2OleControlTypeEnum של סוגי פקודות Forms 2.0

ראה גם

 עברית