OLE ऑब्जेक्ट्स और ActiveX कंट्रोल्स

OLE ऑब्जेक्ट्स और ActiveX कंट्रोल्स

OLE ऑब्जेक्ट्स और ActiveX नियंत्रण

Aspose.Words FOSS for .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 के माध्यम से पहुँचा जाता है, OLE पैकेज के रूप में एम्बेडेड ऑब्जेक्ट्स के लिए FileName और DisplayName उजागर करता है।


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() के साथ उपयोग करें।
  • Forms2OleControl में कास्ट करने से पहले हमेशा OleControl.IsForms2OleControl की जाँच करें — हर OleControl फ़ॉर्म्स 2.0 कंट्रोल नहीं होता।
  • Forms2OleControlCollection.Count और GetEnumerator() के माध्यम से एनीमरेशन आपको फ्रेम या मल्टी-पेज कंटेनर कंट्रोल के भीतर नेस्टेड कंट्रोल्स को पार करने की अनुमति देते हैं।

सामान्य समस्याएँ

समस्याकारणसमाधान
GetRawData() अप्रत्याशित/खाली डेटा लौटाता हैऑब्जेक्ट एक लिंक (IsLink == true) है, एम्बेडेड नहींपहले IsLink जांचें; लिंक्ड ऑब्जेक्ट्स के लिए SourceFullName को हल करें
InvalidCastException OleControl को Forms2OleControl में कास्ट कर रहा हैनियंत्रण Forms 2.0 नियंत्रण नहीं हैकास्ट करने से पहले IsForms2OleControl जांचें
GetOleEntry() नामित स्ट्रीम के लिए null लौटाता हैस्ट्रीम नाम इस ऑब्जेक्ट की कंपाउंड फ़ाइल संरचना में मौजूद नहीं हैस्थिर नाम मानने के बजाय वास्तविक प्रविष्टि नामों को गिनें
फ़्रेम के भीतर नेस्टेड नियंत्रण नहीं मिलेकेवल शीर्ष-स्तर के OleControl की जाँच की, ChildNodes की नहींForms2OleControl.ChildNodes में कंटेनर नियंत्रणों के लिए पुनरावृत्ति करें

FAQ

मैं Word दस्तावेज़ से एम्बेडेड Excel या PowerPoint ऑब्जेक्ट को कैसे निकालूँ?

शेप के OleFormat तक पहुँचें, फिर एम्बेडेड ऑब्जेक्ट के मूल बाइट्स प्राप्त करने के लिए Save(fileName) या GetRawData() को कॉल करें; आउटपुट फ़ाइल का उचित नाम देने के लिए SuggestedExtension का उपयोग करें।

एंबेडेड OLE ऑब्जेक्ट और Forms 2.0 कंट्रोल में क्या अंतर है?

एक एंबेडेड OLE ऑब्जेक्ट (जो OleFormat के माध्यम से सीधे एक्सेस किया जाता है) आमतौर पर एक अन्य दस्तावेज़ (स्प्रेडशीट, प्रेजेंटेशन) होता है; एक Forms 2.0 कंट्रोल (OleFormat.OleControl → Forms2OleControl) एक इंटरैक्टिव UI तत्व है जैसे चेकबॉक्स या टेक्स्ट बॉक्स।

मैं यह कैसे पता करूँ कि OLE ऑब्जेक्ट एंबेडेड के बजाय लिंक्ड है?

OleFormat.IsLink देखें — जब true, SourceFullName और SourceItem बाहरी स्रोत का वर्णन करते हैं, न कि ऑब्जेक्ट के अपने डेटा को ले जाने का।

क्या मैं चेकबॉक्स कंट्रोल का कैप्शन या वैल्यू पढ़ सकता हूँ?

हाँ — OleControl को Forms2OleControl में कास्ट करें ( IsForms2OleControl की पुष्टि करने के बाद) और Caption और Value पढ़ें।


API Reference सारांश

क्लास / मेथडविवरण
OleFormatएम्बेडेड OLE ऑब्जेक्ट के डेटा और मेटाडेटा के लिए प्रवेश बिंदु
OleFormat.GetRawData()एम्बेडेड ऑब्जेक्ट के कच्चे बाइट्स प्राप्त करें
OleFormat.Save()एम्बेडेड ऑब्जेक्ट के मूल डेटा को फ़ाइल या स्ट्रीम में सहेजें
OlePackageOLE पैकेज ऑब्जेक्ट के लिए फ़ाइल नाम/डिस्प्ले नाम
OleControlएंबेडेड ActiveX नियंत्रण का बेस प्रतिनिधित्व
Forms2OleControlMicrosoft Forms 2.0 कंट्रोल (चेकबॉक्स, टेक्स्टबॉक्स, कॉम्बो बॉक्स, आदि)
Forms2OleControlCollectionForms2OleControl नोड्स का संग्रह (उदाहरण के लिए, फ्रेम के अंदर)
Forms2OleControlTypeForms 2.0 नियंत्रण प्रकारों का Enum

यह भी देखें

 हिन्दी