COM / OLE / اكتف / IDispatch والارتباك
سؤال
وأنا لا يمكن التفاف رأسي حول الاختلافات بين هذه الشروط.
مرادفاتهل COM و ActiveX؟
هل كائن اكتف مجرد كائن COM الذي يعرض IDispatch و؟
والكثير من الصفحات MSDN القديمة تذكر IDispatch ودون أي سياق COM. هل لديك تاريخ منفصل، وقدمت للتو تحت "مظلة" للCOM في وقت لاحق في دورة حياتها؟
وأين تناسب OLE في؟ هو في (الكبير) وجود في تسمية MFC وMSDN بشكل عام - عن إرث عادل
ويكيبيديا يعطي بعض البصيرة، ولكن ليس كثيرا. لم أجد أكثر في عمق المرجعية.
المحلول
وجدت بعض الاقتباسات من <لأ href = "http://books.google.com/books؟id=5otUpy4cLAIC&printsec=frontcover&dq=٪22com+programming+by+example٪22#PPP1،M1" يختلط = "noreferrer" > البرمجة COM بالقدوة :
<اقتباس فقرة>وشيء آخر ستجد بسرعة مع COM هو أن التسويق زيارتها رحلة ميدانية اليوم مع المصطلحات. بدلا من مما يساعد على تعزيز التفاهم، ستجد في معظم الحالات، يعزز لغز. ... OLE و ActiveX، Remotable الأشياء - أي واحد يعني ما هذا أسبوع؟ ...
وCOM تطورت من حل ل مشكلة محددة - كيفية السماح لكلمة المعالج لتعديل جدول البيانات في الرسالة دون أن يضطر المستخدم للخروج معالج النصوص للقيام بذلك. هذه كان يسمى حل OLE. ... ومع ذلك، مع الإصدار الثاني من OLE (OLE2)، مؤسسيها تعديل OLE32.DLL ل كشف المزيد من الوظائف الأساسية من OLE بحيث يمكن استخدام API لها السماح لأي تطبيق لرصا لل وظائف أخرى. هذا API، التي لم تتغير كثيرا منذ عام 1993، هو ما يعتبر في COM واجهة برمجة التطبيقات. ...
وعندما تعرضت للAPI COM، استخدام Microsoft لإنشاء ما كانت ثم دعا تسيطر OLE للسماح لل ضوابط متطورة (على سبيل المثال، وأزرار أن دوامة، قائمة الصناديق التي تلعب الموسيقى) مكتوبة في Visual C ++ أن يكون الوصول إلى Visual Basic التطبيقات. في نهاية المطاف هذا نفسه تم استخدام التكنولوجيا للسماح للسيطرة ليتم تحميلها واستخدامها من قبل الويب الخاص بك المتصفح. في هذه المرحلة، واسم تغيير لعناصر تحكم ActiveX أو مجرد سهل اكتف بحتة للتسويق الأسباب. على الرغم من أنك يمكن أن حزمة أي وظائف في عنصر تحكم ActiveX، وقد requrirements لها المتخصصة لدعم المستخدم واجهة التحكم.
اقتباس فقرة>وأنا ما زلت غريبة عن الجملة الأخيرة جدا - يجب أن كائن COM تلبية بعض متطلبات إضافية لوصفها بأنها عنصر تحكم ActiveX؟ - ولكن يكفي لندعه يذهب
وشكرا لإجاباتك!
نصائح أخرى
وActiveX هو التسويق جنوب شرقي لCOM، على الرغم من اكتف يستخدم عادة في سياق "عناصر تحكم ActiveX" التي هي كائنات واجهة المستخدم الرسومية.
وIDispatch وهو واجهة التي تنفذها COM الكائنات يمكن لذلك أن برامج العميل الاتصال أساليبها بشكل حيوي في وقت التشغيل (في وقت متأخر ملزم)، خلافا لفي وقت الترجمة التي تحتاج إلى أن يكون معروفا في وقت سابق عن أساليب وأنواع حجة .
وOLE هو إصدار سابق من COM.
وفيما يتعلق OLE: COM له جذوره في OLE. ولكن اليوم، يمكن اعتبار OLE أن تكون مبنية على أعلى COM ويستخدم في الغالب لما يوحي اسمها - ربط وثيقة والتضمين. في حين يعرف COM نفسه سوى بضع واجهات نفسه (IUnknown، IClassFactory، IMalloc الخ)، ويضيف OLE في مجمله مجموعة من واجهات إضافية مثل IMoniker، IOleItemComtainer، وما إلى ذلك.
لتلخيص:. com هو الأساس، ActiveX و OLE طبقات فوق COM