2009-05-04 11 views
6

मैं इन शर्तों के बीच अंतर के चारों ओर अपने सिर को लपेट नहीं सकता।COM/OLE/ActiveX/IDISpatch भ्रम

क्या COM और ActiveX समानार्थी हैं?

क्या ActiveX ऑब्जेक्ट केवल एक COM ऑब्जेक्ट है जो IDISpatch को उजागर करता है?

पुराने एमएसडीएन पृष्ठों के बहुत सारे किसी भी COM संदर्भ के बिना IDispatch का उल्लेख करते हैं। क्या इसका एक अलग इतिहास है, और इसे बाद में अपने जीवन चक्र में COM 'छतरी' के तहत पेश किया गया था?

ओएलई कहां फिट है? क्या एमएफसी नामकरण और सामान्य रूप से एमएसडीएन में इसकी (काफी) उपस्थिति है - सभी सिर्फ विरासत?

Wikipedia कुछ अंतर्दृष्टि देता है, लेकिन ज्यादा नहीं। मैं गहराई से संदर्भ में और अधिक नहीं मिला।

उत्तर

7

COM Programming by Example से मिले कुछ उद्धरण:

एक और बात आप जल्दी से कॉम के साथ मिल जाएगा कि विपणन शब्दावली के साथ एक क्षेत्र की यात्रा दिन था। इसके बजाय समझ को बढ़ावा देने में सहायता करने में मदद करता है, आपको ज्यादातर मामलों में रहस्य को बढ़ावा मिलेगा। ... ओएलई, एक्टिवएक्स, रिमोटेबल ऑब्जेक्ट्स - जिसका मतलब है कि यह सप्ताह क्या है? कैसे एक शब्द प्रोसेसर बाहर निकलने के लिए यह करने के लिए शब्द संसाधक होने उपयोगकर्ता के बिना एक पत्र में स्प्रैडशीट को संपादित करने की अनुमति के लिए - ...

कॉम एक विशिष्ट समस्या का हल से बाहर विकसित। यह समाधान ओएलई कहा जाता था। ... हालांकि, OLE (OLE2) की दूसरी रिलीज के साथ, करने के लिए अपने रचनाकारों संशोधित Ole32.dll OLE की आधारभूत कार्यक्षमता को अधिक प्रकट ताकि उसके एपीआई इस्तेमाल किया जा सकता किसी भी आवेदन तक पहुंचने की अनुमति के लिए दूसरी की कार्यक्षमता। यह एपीआई, जो 1 99 3 से बहुत अधिक नहीं बदला है, जिसे COM API माना जाता है। ...

एक बार COM एपीआई अवगत कराया गया था, माइक्रोसॉफ्ट यह प्रयोग किया बनाने के लिए क्या थे तो कहा जाता है OLE परिष्कृत नियंत्रण (जैसे, बटन कि सर्पिल, सूची बक्से कि संगीत खेलने) दृश्य C++ लिखा होने की अनुमति के लिए नियंत्रित करता है विजुअल बेसिक अनुप्रयोगों के लिए सुलभ। आखिरकार यह वही तकनीक का उपयोग को आपके वेब ब्राउज़र द्वारा डाउनलोड और उपयोग करने के लिए किया गया था। इस बिंदु पर, नाम 0xकारणों के लिए सक्रिय रूप से सक्रिय ActiveX नियंत्रण या सादा ActiveX में बदल गया है। यद्यपि आप किसी ActiveX नियंत्रण में कार्यक्षमता को पैकेज कर सकते हैं, इसकी पुनरावृत्ति उपयोगकर्ता इंटरफ़ेस नियंत्रण का समर्थन करने के लिए विशिष्ट है।

मैं अभी भी आखिरी वाक्य के बारे में उत्सुक हूं - क्या एक COM ऑब्जेक्ट को ActiveX नियंत्रण के रूप में अर्हता प्राप्त करने के लिए कुछ अतिरिक्त आवश्यकताओं को पूरा करना चाहिए? - लेकिन इसे जाने के लिए पर्याप्त है।

आपके उत्तरों के लिए धन्यवाद!

+1

"एक COM ऑब्जेक्ट को ActiveX नियंत्रण के रूप में अर्हता प्राप्त करने के लिए कुछ अतिरिक्त आवश्यकताओं को पूरा करना चाहिए" हां। मुझे यकीन नहीं है कि वे क्या हैं, हालांकि। शायद यह है कि इसे कुछ विशेष इंटरफेस को लागू करना है। –

+1

इसका कोई कठोर विनिर्देश नहीं है। यहां तक ​​कि दस्तावेज़ों का कहना है कि जब ActiveX नियंत्रण इंटरफ़ेस को लागू नहीं करता है तो कंटेनरों को गड़बड़ करनी चाहिए। –

+0

ActiveX नियंत्रणों के मूल नमूने में इंटरनेट एक्सप्लोरर और/या विजुअल बेसिक में नियंत्रण को उपयोगी बनाने के लिए इंटरफेस की आवश्यकता थी। लेकिन इंटरफेस के उन सेट समय के साथ बदल गए, और अनुप्रयोगों को लापता इंटरफेस के अधिक सहिष्णु हो गए, इसलिए आखिरकार COM IU अज्ञात इंटरफ़ेस का समर्थन करने वाले किसी भी चीज़ को ActiveX घटक माना जा सकता है। –

4

ActiveX COM के लिए विपणन-ese है, हालांकि ActiveX आमतौर पर "ActiveX नियंत्रण" के संदर्भ में उपयोग किया जाता है जो जीयूआई ऑब्जेक्ट्स हैं।

आईडीस्पैच COM ऑब्जेक्ट्स द्वारा कार्यान्वित एक इंटरफ़ेस है ताकि क्लाइंट प्रोग्राम रन-टाइम (देर से बाध्यकारी) पर गतिशील रूप से अपनी विधियों को कॉल कर सकें, क्योंकि संकलन समय के विपरीत जहां सभी विधियों और तर्क प्रकारों को आगे जाने की आवश्यकता है पहर।

ओएलई COM का पहला संस्करण है।

1

ओएलई के संबंध में: COM की जड़ों ओएलई में है। लेकिन आज, ओएलई को COM के शीर्ष पर बनाया जा सकता है और इसका नाम ज्यादातर इसके लिए उपयोग किया जाता है - दस्तावेज़ लिंकिंग और एम्बेडिंग। कॉम खुद ही इंटरफेस (IUnknown, IClassFactory, IMalloc आदि) का केवल एक जोड़े को परिभाषित करता है, वहीं OLE IMoniker, IOleItemComtainer, आदि जैसे अतिरिक्त इंटरफेस की एक पूरी गुच्छा कहते हैं

सारांश में: COM नींव, ActiveX और OLE है COM के शीर्ष पर परतें हैं।

+0

मैं वर्तमान में इसी तरह के विषय पर काम कर रहा हूं और इसके दौरान मुझे दो लिंक मिले जो यहां उपयोगी हो सकते हैं: http://msdn.microsoft.com/en-us/library/aa751972(v=vs.85).aspx #ActiveX_Controls '... दूसरे शब्दों में, कम से कम एक नियंत्रण कुछ COM ऑब्जेक्ट है जो अज्ञात इंटरफ़ेस का समर्थन करता है और यह भी स्वयं पंजीकृत है http://support.microsoft.com/kb/159621/en -us – juniper