عينة نموذج كائن المكون (COM)
COM هي تقنية قوية للغاية لمكونات البرامج بناءً على التصميم الموجهة للكائنات. يرجى الاطلاع على الوثائق هنا لمزيد من التفاصيل.
واحدة من العيوب الرئيسية لـ COM هي المقصورة الأولية المطلوبة لإعداد مكونات COM. ATL هي مجموعة من المكتبات التي تساعد في بناء Boilerplate ، ولكنها تأتي مع تعقيدها.
توفر هذه العينة هنا رمز الهيكل العظمي الذي من شأنه أن يقوم بتكوين السماوات لإعداد COM وتسجيله بحيث يمكن للمطورين التركيز على منطق العمل وحده بدلاً من القلق بشأن البنية التحتية. لا يستخدم ATL . بدلاً من ذلك ، يستخدم رمز C ++ البسيط بحيث يمكن للمطورين فهم وتصحيح الهيكل العظمي الأساسي إذا لزم الأمر.
المصطلحات المستخدمة
- خادم COM هو كائن يوفر منطق العمل.
- عميل COM هو الرمز الذي يصل إلى خادم COM من خلال أي واجهة مكشوفة بواسطة خادم COM.
- يحدث التفاعل بين عميل COM وخادم COM عبر التنقل ، ويتطلب DLL الوكيل.
- يرجى الاطلاع على الوثائق هنا لمزيد من التفاصيل.
هذا المشروع
هنا هو ملخص حول الدلائل المختلفة في هذه العينة.
- comsampleproxy : Proxystub dll. لإضافة واجهة جديدة ، ما عليك سوى إضافة ملف IDL جديد إلى المشروع.
- ComSampleserver : دعم تنشيط خادم COM في العملية وكذلك خارج العملية (في نظام التشغيل بديل DLL أي dllhost.exe).
- ComSampleservice : دعم تنشيط خادم COM في خدمة Loldystem.
- ComSampleClient : عينة عينة com التي تستدعي واختبار خوادم COM المذكورة أعلاه.
إنشاء وتسجيل مكون COM جديد
يعد إنشاء مكون جديد COM سهلًا للغاية مع هذا النموذج.
- أضف واجهتك :
- إضافة ملف IDL جديد مع واجهتك إلى مشروع ComSampleProxy. انظر نموذج الملف /comsampleproxy/icomtest.idl.
- قم بتنفيذ فصل COM الخاص بك :
- للتنشيط في العملية أو العملية الخارجية في التنشيط البديل : أضف تطبيق الفصل الخاص بك إلى مشروع ComSampleserver. انظر مثال comsampleserver/ccomservertest.cpp. انتقل الآن إلى comsampleserver/dll.cpp وابحث ببساطة عن إدخالات الفصل الخاص بك إلى "G_Classes".
- لتفعيل التنشيط خارج العملية في خدمة نظام Loldystem : أضف إضافة تطبيق الفصل الخاص بك إلى مشروع ComSampleservice. انظر مثال comsampleservice/ccomservicetest.cpp. انتقل الآن إلى comsampleservice/main.cpp وأضف ببساطة إدخالات الفصل الخاص بك إلى "G_Classes".
- قم بتسجيل مكونات COM الخاصة بك :
- نسخ comsampleproxy.dll على الجهاز الهدف الخاص بك. من مطالبة مرتفعة ، تشغيل: regsvr32 comsampleproxy.dll .
- للتنشيط في العملية أو العملية الخارجية في التنشيط البديل : copy comsampleserver.dll على جهازك المستهدف. من مطالبة مرتفعة ، تشغيل: regsvr32 comsampleserver.dll .
- لتفعيل التنشيط خارج العملية في خدمة نظام التشغيل loldystem : نسخ comsampleservice.exe على جهازك المستهدف. من موجه أوامر مرتفعة ، قم بتشغيل: comsampleservice.exe /resterserver .
هذا هو!
علامات تجارية
قد يحتوي هذا المشروع على علامات تجارية أو شعارات للمشاريع أو المنتجات أو الخدمات. يخضع الاستخدام المعتمد للعلامات التجارية أو الشعارات في Microsoft ويجب أن يتبعوا إرشادات العلامات التجارية والعلامة التجارية. يجب ألا يسبب استخدام العلامات التجارية Microsoft أو الشعارات في إصدارات معدلة من هذا المشروع الارتباك أو يعني رعاية Microsoft. يخضع أي استخدام للعلامات التجارية أو الشعارات من طرف ثالث لسياسات تلك الطرف الثالث.