لائحة الطعام
مجاني
تحقق في
الرئيسية  /  تعليم / غير قادر على إنشاء كائن بواسطة حاوية رسالة ActiveX CDO. إنشاء حاويات ActiveX حاويات

غير قادر على إنشاء كائن من حاوية رسالة ActiveX CDO. إنشاء حاويات ActiveX حاويات


تحرير سجل Windows يدويا لحذف أخطاء المفتاح المفتاح 800A01AD غير مستحسن إذا لم تكن متخصص خدمة الكمبيوتر الشخصي. يمكن أن تؤدي الأخطاء المسموح بها عند تحرير السجل إلى عدم إمكانية استخدام جهاز الكمبيوتر الخاص بك ووضع تلف لا يمكن إصلاحه لنظام التشغيل الخاص بك. في الواقع، حتى فاصلة واحدة، تسليمها ليس في المكان، يمكن أن تمنع تنزيل الكمبيوتر!

بسبب هذا الخطر، نوصي بشدة باستخدام نظافة التسجيل الموثوق مثل WinThruster [تنزيل] (تم تطويره بواسطة شريك Microsoft Gold المعتمد) لمسح وإصلاح أي مشاكل خطأ 800AA01AD. باستخدام منظف التسجيل [تنزيل] [تنزيل]، يمكنك أتمتة عملية البحث عن إدخالات التسجيل التالفة، وصلات إلى الملفات المفقودة (على سبيل المثال، مما يؤدي إلى الخطأ ٪٪ ERROR_NAME ٪٪) والارتباطات غير العملية داخل التسجيل. قبل كل مسح، يتم إنشاء نسخة احتياطية تلقائيا، مما يتيح لك إلغاء أي تغييرات على نقرة واحدة وحمايتك من الأضرار المحتملة للكمبيوتر. الشيء الأكثر متعة هو أن القضاء على أخطاء التسجيل [تنزيل] يمكن أن يزيد بشكل كبير من سرعة وأداء النظام.


تحذير: إذا لم تكن مستخدم من ذوي الخبرة، فإننا لا نوصي بتحرير سجل Windows يدويا. يمكن أن يؤدي الاستخدام غير الصحيح لمحرر التسجيل إلى مشاكل خطيرة وتطلب إعادة تثبيت Windows. نحن لا نضمن أن الأعطال التي تكون نتيجة الاستخدام غير الصحيح لمحرر التسجيل يمكن القضاء عليها. يمكنك استخدام محرر التسجيل بمخاطرك الخاصة.

قبل استعادة سجل Windows يدويا، يجب نسخ نسخة احتياطية، تصدير جزء من سجل الخطأ 800AA01AD (على سبيل المثال، ActiveX):

  1. انقر على الزر لتبدأ.
  2. يدخل " أمر." في قفل البحث ... لا تضغط أدخل!
  3. عقد المفاتيح Ctrl-Shift. على لوحة المفاتيح، انقر أدخل.
  4. سيتم عرض مربع حوار للوصول.
  5. انقر نعم.
  6. يفتح الصندوق الأسود مع مؤشر وميض.
  7. يدخل " regedit." و اضغط أدخل.
  8. في محرر التسجيل، حدد مفتاح الخطأ 800A01AD (على سبيل المثال. ActiveX) الذي تريد نسخه احتياطيا.
  9. على القائمة ملف إختر يصدر.
  10. في القائمة حفظ ب. حدد المجلد الذي تريد حفظ النسخ الاحتياطي الأساسي ActiveX.
  11. في الميدان اسم الملف أدخل اسم ملف النسخ الاحتياطي، مثل "النسخ الاحتياطي ActiveX".
  12. تأكد في الحقل نطاق التصدير القيمة المحددة فرع محدد.
  13. انقر يحفظ.
  14. سيتم حفظ الملف مع extension.reg..
  15. لديك الآن نسخة احتياطية من إدخال التسجيل ذي الصلة ActiveX.

لن يتم وصف الخطوات التالية مع التحرير اليدوي للتسجيل في هذه المقالة، لأنه من المحتمل للغاية إتلاف نظامك. إذا كنت ترغب في الحصول على مزيد من المعلومات حول تحرير التسجيل يدويا، يرجى قراءة الروابط أدناه.

النظم وكلها متصلة متوفرة. يحتوي هذا الخطأ على الأسباب والحلول التالية:

    الفصل غير مسجل. على سبيل المثال، في سجل النظام، لا يوجد ذكر للصف، أو يتم ذكر الفصل، ولكن يشير إلى ملف نوع خاطئ أو إلى ملف لا يمكن العثور عليه. إذا كان ذلك ممكنا، قم بتشغيل تطبيق الكائن. إذا كانت معلومات التسجيل غير صحيحة أو قديمة، فسوف يتحقق التطبيق من التسجيل وتصحيح هذه المعلومات. إذا كان تطبيق التطبيق لا يساعد في حل المشكلة، فقم بإعادة تشغيل برنامج تثبيت التطبيق؛

    غير قادر على استخدام مكتبة DLL المطلوبة من قبل الكائن لأنه لم يتم العثور عليه أو العثور عليه التالفة. تأكد من توفر جميع DLL ذات الصلة. على سبيل المثال، يتطلب كائن الوصول إلى البيانات (DAO) دعم DLL، وهو ما يختلف اعتمادا على النظام الأساسي. إذا كان هذا هو سبب الخطأ، فأنت بحاجة إلى إعادة تشغيل برنامج التثبيت الخاص بهذا الكائن؛

    يتوفر الكائن على جهاز كمبيوتر، ولكنه مرخص، ولا يمكنه التحقق من توفر الترخيص اللازم لإنشاء مثيل كائن.

    لا يمكن إنشاء مثيلات بعض الكائنات إلا بعد أن تجد المكون مفتاح ترخيص يؤكد تسجيل هذا الكائن لإنشاء مثيل على هذا الكمبيوتر. إذا كان هناك مرجع إلى الكائن في المفتاح المثبت أو الصحيح بشكل صحيح، يتم توفيره تلقائيا.

    إذا كانت محاولة إنشاء مثيل هي نتيجة مكالمة الوظيفة إنشاء كائن. أو getobject.يجب أن يجد الكائن المفتاح. في هذه الحالة، يمكن البحث في سجل النظام أو البحث عن ملف خاص يقوم بإنشاءه عند تثبيته (على سبيل المثال، مع Extension.lic). إذا فشل المفتاح في العثور عليه، لا يمكن إنشاء مثيل كائن. إذا قام المستخدم النهائي بتكوين تطبيق الكائنات بشكل غير صحيح، فسيتم حذف الملف المطلوب بشكل لا رجعة فيه أو تغيير سجل النظام، فلن يتمكن الكائن من العثور على مفتاحه. إذا فشل المفتاح في العثور عليه، فمن المستحيل إنشاء مثيل كائن. في هذه الحالة، يمكن إنشاء مثيل يعمل في نظام المطور، ولكن ليس في نظام المستخدم. يجب على المستخدم إعادة تثبيت الكائن المرخص؛

    تحاول استخدام ميزة تلقي الكائن getobject.للحصول على رابط إلى الفصل الذي تم إنشاؤه باستخدام Visual Basic. getobject. لا يمكنك استخدامها للحصول على مرجع إلى فئة تم إنشاؤها باستخدام Visual Basic؛

    يتم حظر الوصول إلى الكائن بشكل صريح. على سبيل المثال، تحاول الوصول إلى كائن البيانات، والذي يستخدم حاليا ومحفوظا لمنع المتشابكة. في هذه الحالة، قد تتمكن من الوصول إلى الكائن في وقت آخر.

لمزيد من المعلومات، حدد العنصر الذي نشأ إليه السؤال واضغط على مفتاح F1 (في Windows) أو المساعدة (على كمبيوتر Macintosh).

ألكسندر كوستاريف
مبرمج مختبر برامج R-Style.

إن إنشاء عناصر تحكم ActiveX مضاءة على نطاق واسع في الأدبيات الخاصة. ومع ذلك، فإن طرق كتابة حاويات ActiveX - تعتبر أقل تواترا، وخاصة فقط في تفاعلهم مع كائنات ActiveX. حتى أقل منشورات مخصصة لإجراءات تطوير الحاويات التي تدعم واجهة البرنامج الخاصة بها (API)، والتي توفر العمل معهم والأشياء الواردة فيها من التطبيقات الأخرى أو اللغات النصية. تتضمن أمثلة مثل هذه الحاويات منتجات البرامج مثل Microsoft Visual Basic و Borland Delphi، إلخ.

ومع ذلك، على أساس الحاويات القائمة، لا يمكن حل عدد من المهام - وهذا يتطلب حاويات التحكم المتخصصة. تتمثل إحدى هذه المهام في إنشاء تطبيق قابل للتوسيع يسمح لك بأتمتة العمليات المتكررة التي لا يمكن توقعها أثناء التطوير. يتطلب التشغيل الآلي أن يوفر التطبيق الوصول إلى كائناته من الخارج وتم دمجه مع أداة تطوير الملحق. يعتمد بناء واجهة المستخدم في معظم الحالات على إدراج عناصر تحكم مختلفة في النموذج - حاوية كائنات ActiveX. وبالتالي، فإن إنشاء الأداة يتطلب إنشاء حاوية ActiveX.

سننظر إلى بعض المشكلات الناشئة عن إدخال بنية المكونات إلى مجمع مفيدة، وكذلك طرق حلها. قد يتساءل هذا كيفية تطوير حاويات عناصر التحكم في أدوات التحكم ومطوري كائنات ActiveX، نظرا لأن المقالة توضح الغرض وطرق استخدام طرق مختلفة من عناصر التحكم القياسية على جانب التحكم في الحاوية.

تستند الحلول المقترحة إلى تجربة تطوير مجمع أدوات النماذج RS-Forms - منتج البرامج الجديد لمختبر برامج R-Style. تتضمن أشكال RS - وسيلة لتطوير واجهة مستخدم رسومية على منصة Windows، وبيئة تنفيذ البرنامج التي تم إنشاؤها باستخدام لغات RSL * و C و C ++، بالإضافة إلى نظام تصحيح برنامج RSL.

* كائن RSL هو لغة برمجة رفيعة المستوى تم إنشاؤها في مختبر برامج R-Style. للحصول على التفاصيل، انظر http://www.softlab.ru/products/rsl/. - تقريبا. إد.

نفذ المشروع الإصدار الأول من أشكال المصمم (الشكل 1)، مما يتيح لك إنشاء نماذج، وتنفيذ كلا من عناصر التحكم القياسية وكائنات ActiveX التعسفي، وحفظ النماذج الجاهزة في التخزين على وسائط ثابتة من المعلومات وتحميلها منه وبعد بمساعدة مصمم، يمكنك عرض خصائص وطرق وأحداث أي عنصر تحكم مضمن في النموذج، قم بتغيير قيم الخصائص.

يعتمد المصمم على حاوية التحكم في عنصر تحكم ActiveX (النموذج)، والتي توفر الوظيفة الموضحة أعلاه. بالإضافة إلى ذلك، يدعم النموذج خيارات مختلفة لتكوين عرض تقديمي، بما في ذلك النسبة المئوية ملزمة العناصر المضمنة إلى الحدود، والتحكم في تسلسل لوحة المفاتيح الالتفافية، وضوحها، سماعة الرأس وحجم الخط، خلفية اللون، النص، إلخ.

بالإضافة إلى تطوير واجهة مستخدم رسومية في المصمم، يتم وضع آلية توليد الكود التلقائي باللغات C ++ و RSL. من المهم ملاحظة أن جميع العمليات التي يتم تنفيذها أعلى النموذج الموجود في المصمم متوفرة في وضع التنفيذ من رمز البرنامج.

تين. 1. أشكال المصمم.

يمكن استخدام النموذج الرسم الذي تم إنشاؤه في المصمم في أي تطبيق C / C ++، وكذلك من أي لغة بريد إلكتروني، مثل Visual Basic أو RSL. عند استخدام النماذج في تطبيقات C ++ المتقدمة باستخدام مكتبة MFC، يمكن استخدام المصمم كتحرير موارد الحوار.

الآن دعونا نناقش مفهوم بناء الحاوية ومبادئ العمل مع عناصر التحكم ActiveX.

وظائف الحاويات الأساسية

يجب أن تحتوي أي حاوية للتحكم عن التحكم في وظيفة تسمح لك بإنشاء كائنات ActiveX، وضمان تشغيلها الصحيح، وحذفها من ذاكرة الوصول العشوائي، وكذلك حفظ العناصر إلى تخزين الكائنات على وسائط ثابتة من المعلومات وتنزيلها من ذلك *. تتضمن الحاوية عددا من المكونات (الشكل 2)، مما يوفر المعيار (وفقا لتكنولوجيا Microsoft ActiveX) الوظيفة المطلوبة للتشغيل الصحيح للعناصر الضوابط.

* تعتبر القضايا العامة لحاويات البناء والخوادم من كائنات COM في كتاب D. Cheppel "ActiveX and Ole Technologies" - م: لوحة التحرير الروسية، 1997.

تدعم الحاوية مجموعة (على سبيل المثال، قائمة) كائنات الاتصالات مع عناصر ActiveX - واحدة بواسطة كائن اتصال واحد لكل عنصر تحكم. بالإضافة إلى ذلك، ينبغي توفير آلية معالجة قياسية مع عناصر هذه المجموعة في الحاوية القابلة للبرمجة.

كائن اتصالات موقع التحكم هو المسؤول عن التفاعل الصحيح للعنصر المقابل مع الحاوية. يحتوي كل كائن من الاتصال على كيان يوسع التحكم في التحكم في الخصائص والأساليب والأحداث لحاوية معينة. يسمى مثل هذا الكيان مراقبة ممتدة (التحكم الموسع). يمكن أن يكون مثالا على الخصائص المتقدمة بمثابة اسم (اسم)، الموقع في حاوية (عرض، يسار)، وما شابه ذلك. مجموعات محددة هي خصائص الحاوية، وليس بعض عنصر تحكم منفصل، على الرغم من أن هذه هي الطريقة التي يبحث عنها للمستخدم المستخدم. هناك العديد من الخيارات لتنفيذ عنصر تحكم موسع. على سبيل المثال، قد يكون الهدف من كائن الاتصال (انظر الشكل 2) أو كائن COM الحقيقي الذي يعزز التحكم المصدر. كل خيارات لها مزاياها وعيوبها. في هذه المقالة نعتبر الطريقة الأولى فقط.

يحتوي كل عنصر تحكم متقدم على جهاز استقبال حدث (مغسلة الحدث) من عنصر التحكم المرتبط به (الشكل 2). تتضمن مهمتها التحديد الأساسي للأحداث المستلمة (معالجة المستخدمين الحدث مطلوبة)، وإذا لزم الأمر، نقلها إلى كائن مالكها (التحكم الموسع)، والذي يوفر توجيه الأحداث في التسلسل الهرمي لكائنات الحاويات.

إنشاء سيناريو عنصر التحكم

يتكون تنفيذ التحكم في الحاوية من ثلاث مراحل: إنشاء كائن ActiveX والتهدئة والتنشيط.

يتم إنشاء عناصر التحكم في مساحة العنوان للحاوية باستخدام وظائف COM القياسية، مثل CocreateInstance. ينتقل معرف CLSID الفريد من نوع CLSID الفريد المقابل كمعرف للتحكم في الوظيفة في الوظيفة. تجدر الإشارة إلى أن الحاوية يجب أن تدعم الخيارات المختلفة لتحديد كائنات COM في النظام - مثل معرف برنامج ProgID، والمعرف الفريد للفئة في شكل سلسلة، إلخ.

الغرض الرئيسي من مرحلة التهيئة هو نقل السيطرة عبر وظيفة ieoleobject :: sytclientsite الواجهة iOleclientsite لكائن الاتصال ووظيفة وظيفة iPersistReaminit :: internew أو iPersistreaminit :: الحمل (اعتمادا على ما إذا كان الكائن من التخزين يتم تحميلها أم لا). يمكن أن يحدث نقل المؤشر إلى واجهة IOLECLESTITE قبل التحميل / التهيئة أو بعد؛ يتم تحديد لحظة النقل من خلال وجود OLEMISC_SETCLEATIONTFIRST (IOLEOBJECT :: GetMiscStatus). من الضروري، لأنه يعتمد على لحظة نقل المؤشر، في الوقت المناسب سيتلقى عنصر التحكم قيم خصائص البيئة (الخصائص المحيطة) من الحاوية. إذا تم تجاهل هذه الميزة، فقد تكون الأداء الإضافي لكائن ActiveX غير صحيح.

ثم، في إطار المرحلة قيد النظر، من الضروري التهيئة الأولية عن خصائص السيطرة الممتدة التي تكمل كائن ActiveX الذي تم إنشاؤه. على سبيل المثال، من الضروري تعيين اسم الكائن بشكل صحيح (تهيئة خاصية الاسم، والذي يضمن تحديد عناصر التحكم داخل الحاوية). يجب أن تدعم هذه الخاصية أي عنصر تحكم مضمن في الحاوية القابلة للبرمجة، لكنه مع ذلك هو خاصية الحاوية. في كثير من الأحيان، يتم تعيين الكائنات الافتراضية اسم قصير للفئة التي ينتمون إليها (إرجاع هذا الاسم طريقة iOleobject :: getUsertype لمعلمة userclasstype_short)، مع إضافة مؤشر رقمي، مما يضمن الاسم الفريد لعناصر التحكم في الحاوية. إذا تعذر الحصول على الاسم المحدد أو إذا لم يره منطق الحاوية، يمكنك تحديد اسم محدد مسبقا مع الفهرس المقابل.

تنشيط عضو التحكم يعني تسلسل معين من الإجراءات. أولا، من الضروري إنشاء ملاحظات كائن ActiveX مع كائن الاتصال في موقع التحكم. للقيام بذلك، يتم استدعاء الأسلوب iOleobject :: المشورة التي يتم فيها إرسال المؤشر كمعلمة إلى واجهة كائن اتصال IADVisesink القياسي. بعد ذلك، من الضروري طلب واجهة الأسرة IviewObject (وفقا للمواصفات، وكائن ActiveX يمكن أن يدعم iviewObject، iViewObject2، IViewObjectex، الذي يتكون من التسلسلات الهرمية للميراث) ووضع ملائم التعليق له عن طريق استدعاء طريقة IviewOwObject :: SetAdvise مع نقل المؤشر إلى IADVisesink. بالإضافة إلى ذلك، من الضروري إبلاغ عنصر التحكم في اسم الحاوية الخاص به (يتم تنفيذ ذلك عن طريق استدعاء طريقة iOleObject :: SethostName)، قم بطلب وحفظ جميع الواجهات اللازمة للعملية الصحيحة (على الأقل ioleinplaceObject و Iolecontrol). آخر شيء يجب القيام به للعرض المرئي للتحكم، هو استدعاء وظيفة ioleObject :: Doverb * مع المعلمة Oleverb_inplaceTeative.

* في تطبيق ATL، تكون الوظيفة المحددة، من بين أشياء أخرى، مسؤولة عن إنشاء نافذة عن عناصر التحكم العادية (النافذة).

سيناريو حذف عنصر التحكم

لإزالة عناصر التحكم المضمنة في الحاوية، تحتاج إلى استبعادها من المجموعة التي تتوافق مع كائن الاتصال مع عنصر عنصر التحكم، ثم قم بتنفيذ العمليات بالتسلسل: كسر الروابط العكسة وإصدار المؤشرات المحفوظة إلى ActiveX واجهات كائن.

لكسر الملاحظات، من الضروري، أولا وقبل كل شيء، الإبلاغ عن العنصر المذكور في الحاجة إلى الإفراج (عن طريق استدعاء طريقة الإصدار المعروفة :: المعروفة على واجهة IADVisesink لكائن الاتصال. للقيام بذلك، يتم استدعاء أساليب IviewObject :: SetAdvise (مع ناقل حركة كوسيطة فارغة) و OLEOBJECT :: UNO $، والتي يجب حفظها في مرحلة تنشيط معرف الاتصالات. ما يلي مطلوب لتنشيط إجراء إزالة كائن ActiveX (يسمى وظيفة iOleObject :: إغلاق). في الخطوة التالية، يبلغ عنصر الإدارة عن الحاجة إلى إصدار المؤشر إلى واجهة IOLECLESTITE، والتي يطلق عليها OLEOBJECT :: STETCLESSITE مع المعلمة NULL.

تتمثل مرحلة الإفراج في المؤشرات المحفوظة على واجهات التحكم في الدعوة التسلسلية لهم طريقة الإصدار. بمجرد أن يكون المؤشر الأخير مجاني، سيتم حذف كائن (وفقا لتكنولوجيا COM) من ذاكرة الوصول العشوائي.

سيناريو حفظ وتنزيل

إنقاذ كائن الحاوية في المستودع، بغض النظر عن نوع الأخير، هو الحفاظ على خصائص الحاوية (على سبيل المثال، خصائص البيئة) وجمع عناصر تحكم مضمنة، ومعرفات IE والخصائص (بما في ذلك الموسعة) لكل منها مجموعة كائن مملوكة. يمكن أن يعمل معرف فئة CLSID الفريدة العالمية بمثابة معرف التحكم. سيتيح لك ذلك إنشاء كائن ActiveX المطلوب في مرحلة التهيئة وتحميله ببياناته الموجودة في المستودع بعد المعرف المحدد. لحفظ خصائص عنصر التحكم، على سبيل المثال، يسمى الدفق طريقة حفظ الواجهة القياسية لكائنات ActiveX ActiveStreaminit. لتحميل، يتم استدعاء طريقة التحميل ذات نفس الواجهة.

مثل هذا الإجراء الادخاري يضمن الاستعادة اللاحقة لكائن حاوية التخزين. تعمل الطريقة الموصوفة بشكل جيد، شريطة أن تكون من لحظة الادخار وحتى الحمل لا يغير الإصدار أو حذف أي عناصر تحكم من النظام. تحدث مثل هذه المواقف غالبا عند نقل تخزين البيانات من جهاز كمبيوتر إلى آخر، حيث لم يتم تثبيت كائنات ActiveX المحفوظة أو تسجيلها. في هذه الحالة، سيؤدي تحميل كائن الحاوية من المستودع إلى الإكمال المميت للبرنامج، أو سيكون سبب خطأ التحميل للحاوية بأكملها ككل. لمنع الأخطاء، من الضروري تعيين الحدود بوضوح بين بيانات عناصر التحكم المختلفة، تسجيل حجم المعلومات المحفوظة عليها بعد معرف الكائن. سيسمح ذلك في مرحلة التنزيل في بداية بيانات كل كائن ActiveX، بالإضافة إلى تخطي عناصر التحكم غير المسجلة في النظام، ولكن قم بتحميل كائن الحاوية ككل.

مجموعة الواجهات من كائنات ActiveX

وفقا للمعيار، يجب أن تضمن حاوية عناصر التحكم تفاعل كائنات ActiveX المضمنة فيه. للقيام بذلك، تحتاج إلى دعم واجهة IOLECONTAINER، والتي تتيح لك سرد جميع عناصر التحكم المدرجة فيها. إذا كان هناك عنصر تحكم موسع (التحكم الموسع)، يجب أن تمر القائمة على واجهات iunknown لها، وليس عن طريق واجهات الكائن الأساسي.

لتوفير الوصول إلى مجموعة عملاء الأتمتة، بمثابة واجهة قياسية لجمع الكائنات. تتضمن المجموعة القياسية إضافة إضافة وإزالة وواضحة، والخصائص _newum وحساب العد، مما يوفر عناصر القوة الغاشمة الشاملة. على سبيل المثال، يستخدم تصميم Visual Basic لكل لغة خاصية _neweNum إلى قائمة العناصر، والتصميم التالي يفترض استخدام العقار العدل وطريقة العنصر. في لغة RSL للكائن، يتم استخدام خاصية _neweNum عند الوصول إلى طريقة كائن CreateEnum Activity ActiveX. وهذا يوضح، على سبيل المثال، طباعة برنامج RSL باستخدام الأسلوب المحدد لأسماء الملفات المفتوحة في Microsoft Excel (يتم عرض نصها أدناه).

استيراد RSLX؛ OB \u003d ActiveX ("Excel.Application"، NULL، TRUE)؛ en \u003d ob.bookbooks.createenum؛ بينما (en.next) println (en.item.name) النهاية؛

تسمح لك السيناريوهات المرئية بتطوير وظائف إضافة عنصر تحكم إلى الحاوية وإزالتها منه. في معظم الحالات، تقوم دالة الإضافة بإنشاء كائن اتصال مع عنصر عنصر التحكم (تخزين جميع المؤشرات اللازمة إلى واجهات كائن ActiveX واجهات ActiveX) ويسبب وظيفة مماثلة. يدفع الأخير، بدوره، سيناريو التنفيذ الموصوف أعلاه (ربما بدون مرحلة التنشيط). إذا مرت تكوين كائن ActiveX في ذاكرة الوصول العشوائي بنجاح، تضيف دالة الحاويات كائن الاتصال المقابل إليه إلى المجموعة. في كثير من الأحيان، نظرا لتشابهات الإجراءات الخاصة بتنفيذ وتحميل عنصر التحكم من المستودع، يتم دمجها.

* * *

استعرضنا هنا القضايا الأساسية المتعلقة ببناء حاويات التحكم: التنفيذ والشاشة المرئية وحفظ وكائن ActiveX وحملها، بالإضافة إلى إبعادها الصحيح من ذاكرة الوصول العشوائي. ومع ذلك، في عملية إنشاء بيئة فعالة رسومية، نحتاج إلى تنفيذ العديد من الحاويات، والتي من شأنها أن تختلف عن بعضها البعض المنصوص عليها في واجهات الأتمتة، فراجع للمقبولية لتنفيذ كائنات ActiveX، مجموعات من الخصائص والأساليب والأحداث عن الضوابط الموسعة، إلخ وبعد لهذا، تم اقتراح نموذج يسمح لك بإنشاء عناصر حاوية مختلفة متكاملة بشكل جيد مع مكتبة ATL. يتم تحقيق الاستقلال على واجهات محددة من خلال استخدام فئات القوالب التي تعد معلمات هذه الواجهات.

على سبيل المثال، يعد عنصر التحكم في علامة التبويب حاوية خصائص حاوية للأغراض العامة.

يتيح لك هذا النموذج إنشاء المتغيرات الأساسية الأساسية من مختلف كائنات ActiveX المختلفة المتأصلة في "منطق الحاويات". بالإضافة إلى ذلك، تتيح لك البنية التحتية المنفذة إنشاء حاويات ليست عناصر الإدارة. يمكن وضع مثل هذه الحاوية كبرنامج Windows إلى أي جزء من التطبيق الذي يتم تطويره ثم إرسال الرسائل المقابلة، لتضمين عناصر تحكم مختلفة فيه.

نتيجة لذلك، وهي عبارة عن بنية مرنة إلى حد ما من حاويات البناء، يمكنك إنشاء معالج (معالج)، وتوسيع وظائف بيئة Microsoft Visual Studio في آلية إنشاء جزيرة حاوية.