كيفية إنشاء Office COM الوظيفة الإضافية باستخدام Visual Basic .NET

ترجمات الموضوعات ترجمات الموضوعات
معرف المقالة: 302896 - عرض المنتجات التي تنطبق عليها هذه المقالة.
توسيع الكل | طي الكل

في هذه الصفحة

الموجز

يعتمد Microsoft Office 2000 والإصدارات الأحدث هندسة تصميم موحدة جديدة لبناء التطبيقات الإضافية لتحسين و للتحكم في تطبيقات Office. تسمى هذه الوظائف الإضافية وظائف COM الإضافية. تتناول هذه المقالة الوظائف الإضافية لـ COM Office هذه المقالة خطوة بخطوة كما توضح كيفية إنشاء COM Office الوظيفة الإضافية باستخدام Microsoft Visual Basic .NET.

واجهة IDTExensibility2

وظيفة COM الإضافية عبارة عن ملقم COM قيد التشغيل أو مكتبة الارتباط الحيوي ActiveX (DLL) التي تقوم بتنفيذ الواجهة IDTExensibility2 كما هو موضح في مكتبة النوع مصمم Microsoft الوظيفة الإضافية (Msaddndr.dll). كافة وظائف COM الإضافية ترث من هذه الواجهة و يجب أن تقوم بتنفيذ كل من أساليب خمس الخاص به.

OnConnection

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

يأخذ OnConnection المعلمات الأربع التالية:
  • التطبيق - مرجع إلى كائن التطبيق المضيف.
  • ConnectMode - ثابت يحدد كيفية الوظيفة الإضافية اتصال. يمكن أن تكون متصلة الوظيفة الإضافية بالطرق التالية:
    • يتم تشغيله ext_cm_AfterStartup - الوظيفة الإضافية بواسطة المستخدم النهائي من مربع الحوار وظائف COM الإضافية.
    • متصل ext_cm_CommandLine - الوظيفة الإضافية من سطر الأوامر. لاحظ أنه لا يتم تطبيق هذا إلى إنشاء الوظائف الإضافية لـ COM لتطبيقات Office.
    • متصل ext_cm_External - الوظيفة الإضافية بواسطة تطبيق خارجي خلال التنفيذ. لاحظ أنه لا يتم تطبيق هذا إلى إنشاء وظائف COM الإضافية لـ Office التطبيقات.
    • يتم تشغيل ext_cm_Startup - الوظيفة الإضافية من قبل المضيف عند بدء تشغيل التطبيق. يتحكم هذا السلوك إلى إعداد في التسجيل.
  • AddInInst - مرجع إلى كائن COMAddIn الذي يشير إلى هذه الوظيفة الإضافية على مجموعة وظائف COM الإضافية التطبيق المضيف.
  • مخصص - صفيف قيم نوع متغير يتسع البيانات المعرفة من قبل المستخدم.

OnDisconnection

وقع الحدث OnDisconnection عندما يتم قطع الوظيفة الإضافية COM و قبل إلغاء تحميل من الذاكرة. الوظيفة الإضافية يجب تنفيذ عملية تنظيف أي الموارد في هذا الحدث واستعادة يجب أن أية تغييرات يتم إجراؤها إلى التطبيق المضيف.

يأخذ OnDisconnection معلمتين التالية:
  • RemoveMode - ثابت يحدد كيفية الوظيفة الإضافية تم قطع اتصال. الوظيفة الإضافية يمكن قطع الاتصال بالطرق التالية:
    • تم قطع الاتصال ext_dm_HostShutdown - الوظيفة الإضافية عند إغلاق التطبيق المضيف.
    • ext_dm_UserClosed - الوظيفة - في تم قطع الاتصال من قبل المستخدم النهائي أو التنفيذ على وحدة تحكم.
  • مخصص - صفيف قيم نوع متغير يتسع البيانات المعرفة من قبل المستخدم.

OnAddInsUpdate

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

OnStartupComplete و OnBeginShutdown

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

لأن واجهة المستخدم للتطبيق المضيف نشط بشكل كامل عند تشغيل هذه الأحداث, فقد تكون الطريقة الوحيدة لتنفيذ إجراءات معينة وإلا ستكون متوفرة من OnConnection و OnDisconnection.

الوظيفة الإضافية COM التسجيل

بالإضافة إلى تسجيل COM العادي وظيفة الإضافية COM يحتاج تسجيل نفسه مع كل تطبيق Office الذي يتم تشغيل. تسجيل نفسه مع تطبيق معين الوظيفة الإضافية عليك إنشاء المفتاح فرعي باستخدام ProgID الخاص به مثل اسم مفتاح ضمن الموقع التالي:
HKEY_CURRENT_USER\Software\Microsoft\Office\ OfficeApp \Addins\ ProgID
الوظيفة الإضافية يمكن توفير القيم في هذا الموقع المفتاح عن اسم عرض مألوف ووصف كامل. بالإضافة إلى ذلك، الوظيفة الإضافية يجب تعيين سلوك التحميل المطلوب باستخدام قيمة DWORD تسمى
LoadBehavior
. تحدد هذه القيمة الوظيفة الإضافية يتم تحميله من قبل التطبيق المضيف ، وكيفية تتكون من تركيبة من القيم التالية:
  • 0 = قطع الاتصال - ليس تحميله.
  • 1 = متصل - تم تحميله.
  • 2 = bootload - التحميل عند بدء التطبيق.
  • 8 = demandLoad - تحميل فقط عند طلبه من قبل المستخدم.
  • 16 = ConnectFirstTime - التحميل مرة واحدة فقط (عند بدء التشغيل التالي).
القيمة النموذجية المحددة هي 0x03 (متصل | Bootload).

يجب أيضاً تحديد الوظائف الإضافية التي تقوم بتنفيذ IDTExtensibility2 قيمة DWORD تسمى
CommandLineSafe
لتوضيح ما إذا كانت الوظائف الإضافية الآمن للعمليات التي لا تعتمد واجهة مستخدم. تشير قيمة 0x00 إلى False ويشير قيمة 0x01 إلى True.

كيفية إنشاء الوظيفة الإضافية COM باستخدام Visual Basic .NET

كما ذكره مسبقًا COM Office تعتبر وظيفة الإضافية COM في العملية الملقم الذي تم تنشيطه بواسطة تطبيق Office خلال طبقة وقت التشغيل COM. لذلك، تطوير وظيفة الإضافية لـ COM في Visual Basic .NET يتطلب أن يكون مكون الوظيفة الإضافية في .NET ومن ثم الكشف عن عملاء COM (أي، تطبيقات Office) عبر طبقة COM إمكانية التشغيل المتداخل.

لإنشاء وظيفة الإضافية COM في Visual Basic .NET اتبع الخطوات التالية:
  1. في Visual Basic .NET إنشاء "مكتبة فئة" المشروع.
  2. إضافة مرجع إلى مكتبة النوع الذي يطبق IDTExtensibility2. تجميع إمكانية التشغيل المتداخل الأساسي هذا يتوفر بالفعل تحت اسم القابلية للتوسعة.
  3. إضافة مرجع إلى مكتبة كائنات Microsoft Office. تجميع إمكانية التشغيل المتداخل الأساسي هذا يتوفر بالفعل تحت اسم Office.
  4. إنشاء فئة عامة في مكتبة الفئة يطبّق IDTExtensibility2.
  5. تم إنشاء مكتبة بعد الفئة ، تسجيل مكتبة COM interop. للقيام بذلك، إنشاء قوية باسم التجميع لهذه المكتبة فئة ثم قم بالتسجيل مع interop COM. يمكنك استخدام Regasm.exe تسجيل مكون .NET interop COM.
  6. إنشاء إدخالات التسجيل بحيث يمكن التعرف على تطبيقات Office ثم تحميل الوظيفة الإضافية.
يمكنك اختيار استكمل كافة الخطوات التالية أو يمكنك إنشاء مشروع .NET من النوع Addin المشتركة. يؤدي هذا إلى تشغيل "معالج القابلية للتوسعة" الذي يساعدك في إنشاء وظيفة الإضافية COM في .NET.

معالج القابلية للتوسعة بإنشاء مشروع Visual Basic .NET فئة مكتبة مع فئة الاتصال التي تطبق الواجهة IDTExtensibility2. تم إنشاء رمز skeleton يطبّق فارغة أعضاء IDTExtensibility أيضاً. يحتوي هذا المشروع مراجع التجميعات القابلية للتوسعة وOffice. إعدادات الإنشاء المشروع أن يكون لديك تسجيل Interop COM المحدد. يتم إنشاء ملف مفتاح (.snk) تجميع و المشار إليها في سمة AssemblyKeyfile في Assemblyinfo.vb.

مع المشروع مكتبة فئة المعالج بإنشاء مشروع إعداد التي يمكنك استخدامها لنشر في الوظيفة الإضافية COM على أجهزة كمبيوتر أخرى. يمكنك إزالة هذا المشروع إذا رغبت في ذلك.

مثال خطوة بخطوة

  1. من القائمة ملف في Microsoft Visual Studio .NET انقر فوق جديد ثم انقر فوق المشروع.
  2. في مربع الحوار مشروع جديد توسيع مشاريع أخرى ضمن Project أنواع حدد المشاريع القابلية للتوسعة ثم حدد قالب الوظيفة الإضافية المشتركة.
  3. اكتب MyCOMAddin كما هو اسم الوظيفة الإضافية ثم انقر فوق موافق.
  4. عند ظهور "معالج القابلية للتوسعة" اتبع الخطوات التالية:
    1. على الصفحة 1 حدد إنشاء الوظيفة الإضافية باستخدام Visual Basic ثم انقر فوق التالي.
    2. في الصفحة 2 ، وحدد التطبيقات المضيف التالية ثم انقر فوق التالي:
      • Microsoft Word
      • Microsoft PowerPoint
      • Microsoft Outlook
      • Microsoft Excel
      • Microsoft Access
    3. على الصفحة 3 توفير اسم ووصف للحصول على الوظيفة الإضافية ثم انقر فوق التالي.

      ملاحظة يظهر اسم ووصف الوظائف الإضافية في مربع الحوار وظيفة COM الإضافية في تطبيق Office.

    4. في الصفحة 4 ، حدد كافة الخيارات المتوفرة ثم انقر فوق التالي.
    5. انقر فوق إنهاء.
  5. إضافة عضو التالية إلى فئة الاتصال:
    Dim WithEvents MyButton As CommandBarButton 
  6. تنفيذ التعليمات البرمجية لكافة أعضاء IDTExtensibility2 في فئة الاتصال كما يلي:
        Public Sub OnBeginShutdown(ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnBeginShutdown
            On Error Resume Next
            ' Notify the user you are shutting down, and delete the button.
            MsgBox("Our custom Add-in is unloading.")
            MyButton.Delete()
            MyButton = Nothing
    
        End Sub
    
        Public Sub OnAddInsUpdate(ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnAddInsUpdate
            '
        End Sub
    
        Public Sub OnStartupComplete(ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnStartupComplete
    
            Dim oCommandBars As CommandBars
            Dim oStandardBar As CommandBar
    
            On Error Resume Next
            ' Set up a custom button on the "Standard" command bar.
            oCommandBars = applicationObject.CommandBars
            If oCommandBars Is Nothing Then
                ' Outlook has the CommandBars collection on the Explorer object.
                oCommandBars = applicationObject.ActiveExplorer.CommandBars
            End If
    
            oStandardBar = oCommandBars.Item("Standard")
            If oStandardBar Is Nothing Then
                ' Access names its main toolbar Database.
    
                oStandardBar = oCommandBars.Item("Database")
    
            End If
    
            ' In case the button was not deleted, use the exiting one.
            MyButton = oStandardBar.Controls.Item("My Custom Button")
            If MyButton Is Nothing Then
    
                MyButton = oStandardBar.Controls.Add(1)
                With MyButton
                    .Caption = "My Custom Button"
                    .Style = MsoButtonStyle.msoButtonCaption
    
                    ' The following items are optional, but recommended. 
                    ' The Tag property lets you quickly find the control 
                    ' and helps MSO keep track of it when more than
                    ' one application window is visible. The property is required
                    ' by some Office applications and should be provided.
    
                    .Tag = "My Custom Button"
    
                    ' The OnAction property is optional but recommended. 
                    ' It should be set to the ProgID of the add-in, so that if
                    ' the add-in is not loaded when a user clicks the button,
                    ' MSO loads the add-in automatically and then raises
                    ' the Click event for the add-in to handle. 
    
                    .OnAction = "!<MyCOMAddin.Connect>"
    
                    .Visible = True
                End With
            End If
    
            ' Display a simple message to show which application you started in.
            MsgBox("Started in " & applicationObject.Name & ".")
    
    
            oStandardBar = Nothing
            oCommandBars = Nothing
    
    
        End Sub
    
        Public Sub OnDisconnection(ByVal RemoveMode As Extensibility.ext_DisconnectMode, ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnDisconnection
    
            On Error Resume Next
            If RemoveMode <> Extensibility.ext_DisconnectMode.ext_dm_HostShutdown Then _
               Call OnBeginShutdown(custom)
    
            applicationObject = Nothing
    
    
        End Sub
    
        Public Sub OnConnection(ByVal application As Object, ByVal connectMode As Extensibility.ext_ConnectMode, ByVal addInInst As Object, ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnConnection
    
    
            MsgBox("On Connection In MyAddin")
            applicationObject = application
            addInInstance = addInInst
    
    
            ' If you aren't in startup, manually call OnStartupComplete.
            If (connectMode <> Extensibility.ext_ConnectMode.ext_cm_Startup) Then _
               Call OnStartupComplete(custom)
    
        End Sub
    
    
        Private Sub MyButton_Click(ByVal Ctrl As Microsoft.Office.Core.CommandBarButton, ByRef CancelDefault As Boolean) Handles MyButton.Click
            MsgBox("Our CommandBar button was pressed!")
        End Sub
    					
  7. إنشاء واختبار الوظيفة الإضافية COM. للقيام بذلك، اتبع الخطوات التالية:
    1. في القائمة إنشاء ، انقر فوق إنشاء MyCOMAddin. لاحظ أن إنشاء الوظيفة الإضافية COM يسجل فئة .NET بواسطة interop COM.
    2. بدء تشغيل أحد تطبيقات Office التي حددتها كتطبيقات مضيف الوظيفة الإضافية (على سبيل المثال، Microsoft Word أو Microsoft Excel).
    3. بعد الوظيفة الإضافية بدء ، تشغيل الحدث OnConnection وظهور مربع رسالة. عندما استبعاد مربع الرسالة التشغيل الحدث OnStartupComplete وظهور مربع رسالة ثاني. استبعاد مربع الرسالة.
    4. لاحظ أن الوظيفة الإضافية إضافة زر مخصص جديد مع التسمية التوضيحية "زر مخصص جهاز" إلى شريط الأدوات القياسي.
    5. انقر فوق زر مجلد مخصص. تتم معالجة حدث النقر لزر من قبل الوظيفة الإضافية وظهور مربع رسالة. استبعاد مربع الرسالة.
    6. قم بإنهاء تطبيق Office.
    7. إنهاء التطبيق OnBeginShutDown التشغيل الحدث و إمكانية استقبال مربع رسالة. استبعاد مربع الرسالة لإنهاء العرض التوضيحي.

مراجع

للحصول على معلومات إضافية حول كتابة وظائف COM الإضافية انقر فوق رقم المقالة أدناه لعرضها في "قاعدة المعارف لـ Microsoft:
190253INFO: مصممي VB6 لا تعمل في VB5
للحصول على مزيد من المعلومات حول تطوير الحلول المستندة إلى ويب لبرنامج Microsoft Internet Explorer، قم بزيارة مواقع Microsoft التالية على الويب:
http://msdn2.microsoft.com/en-us/ie/default.aspx

http://support.microsoft.com/iep
(c) يوم شركة Microsoft حقوق كافة محجوز. المساهمات قبل عمرو R. Sawant ، Microsoft Corporation.

الخصائص

معرف المقالة: 302896 - تاريخ آخر مراجعة: 04/ذو الحجة/1427 - مراجعة: 11.3
تنطبق على
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Office Outlook 2003
  • Microsoft Outlook 2002 Standard Edition
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard Edition
كلمات أساسية: 
kbmt kbautomation kbhowtomaster KB302896 KbMtar
ترجمة آلية
هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية
اضغط هنا لرابط المقالة باللغة الانجليزية302896

إرسال ملاحظات

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com