كيفية إنشاء على العلامات ذكية DLL في ATL For استخدام في Office XP

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

اضغط هنا لرابط المقالة باللغة الانجليزية292596
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
الموجز
العلامات الذكية هي تقنية المقدمة مع Office XP التي توفر لمستخدمي Office من التفاعل مع محتوى بها Office المستندات. " العلامات الذكية " هو عنصر النص في مستند Office الذي يتم التعرف على أنها الحاجة الإجراءات المخصصة مقترنة به. قد يكون مثال أحد هذه العناصر الخاصة للنص اسم بريد إلكتروني يتم كتابتها إلى مستند Word أو مصنف Excel. إذا تم التعرف على اسم البريد الإلكتروني كـ العلامات ذكية, يتم تقديم المستخدم مع إجراءات أو أكثر لتنفيذ على ذلك النص. إجراءات ممكنة المقترنة مع اسم بريد إلكتروني هي للبحث عن معلومات جهة الاتصال إضافية أو لإرسال رسالة بريد إلكتروني جديدة إلى جهة الاتصال تلك.

يمكنك توسيع إمكانيات Office XP قبل تطوير مكتبة الارتباط الديناميكي Recognizer العلامات الذكية/إجراء (DLL) الخاصة بك لاستخدامها في مستندات Office. هذا المقالة يصف كيفية بناء DLL العلامات الذكية باستخدام Active Template Library (ATL) ثم يناقش ما إعدادات التسجيل مطلوبة من أجل Office XP لتعريف واستخدام DLL العلامات الذكية الخاصة بك.

ملاحظة : Excel 2002 ويتم Word 2002 تطبيقات Office XP فقط التي تعتمد " العلامات الذكية ". ومع ذلك، يمكن تطبيق المعلومات التي يتم تقديم في هذه المقالة على تطوير " العلامات الذكية " لأي تطبيق التي يتبنى التقنية " العلامات الذكية ". يتم DLL العلامات الذكية Component Object Model القياسية DLL (COM) التي تطبق واجهات خاصة اثنين: ISmartTagRecognizer و ISmartTagAction . يتعرف الواجهة ISmartTagRecognizer النص التي يتم كتابتها في مستند كما " العلامات الذكية ". ينفّذ الواجهة ISmartTagAction الإجراءات على سلسلة " العلامات الذكية " معينة عند طلب المستخدم. لم يكن المطلوبة التي سيتم تطبيق هذه الواجهات في DLL نفس. يمكنك الحصول على أداة DLL ومن ثم واحد أو أكثر الإجراء DLL التي توسع نوع " العلامة الذكية " واحد إجراءات مختلفة.

back to the top


خطوات إنشاء العلامة الذكية DLL في ATL


إنشاء الخطوات التالية بسيطة الذكية العلامات DLL التي يتعرف جهات اتصال Messenger الفورية Microsoft Network (MSN) و يعطي المستخدم القدرة إرسال البريد الإلكتروني أو رسائل فورية إلى جهة اتصال التعرف عليها. مطلوب Messenger الفورية لاستخدام هذه العينة. إذا لم يكن لديك Messenger الفورية, يمكنك الحصول على نسخة من موقع ويب MSN التالي:
  1. في Visual C++ ، إنشاء مشروع AppWizard COM ATL جديد. اسم المشروع MessengerSmartTag.
  2. انقر فوق موافق لبدء المعالج COM ATL. في مربع الحوار التالي, تأكد من أنه تم تحديد مكتبة الارتباط الحيوي ثم انقر فوق إنهاء . انقر فوق موافق لإنشاء المشروع.
  3. لإنشاء الفئة Recognizer , في القائمة إدراج انقر فوق كائن ATL جديد . حدد كائن بسيط ثم انقر فوق التالي . لاسم قصيرة, اكتب Recognizer وانقر فوق موافق .
  4. لإنشاء فئة إجراء ، اتبع الإرشادات في الخطوة 3 ولكن اكتب إجراء الاسم القصير.
  5. افتح ClassView ثم توسيع فئات MessengerSmartTag . انقر بزر الماوس الأيمن فوق الفئة CRecognizer وحدد واجهة Implement . انقر فوق موافق عند ظهور مربع الحوار تحذير. انقر فوق استعراض وحدد Microsoft Smart العلامات 1.0 Type Library . حدد ISmartTagRecognizer وواجهة ISmartTagRecognizer2 ثم اضغط موافق .

    ملاحظة : الموقع الافتراضي من أجل " نوع 1.0 Microsoft العلامات الذكية " مكتبة هو C:\Program Files\Common Files\Microsoft Shared\Mstag.tlb.
  6. في ClassView, انقر بزر الماوس الأيمن فوق الفئة CAction وحدد واجهة Implement . انقر فوق موافق عند ظهور مربع الحوار تحذير. انقر فوق استعراض وحدد Microsoft Smart العلامات 1.0 Type Library . حدد ISmartTagAction وواجهة ISmartTagAction2 وانقر فوق موافق .
  7. افتح الملف Recognizer.h ثم استبدال محتويات فئة التعليمة البرمجية التالية:
    ///////////////////////////////////////////////////////////////////////////// // CRecognizer#include "Resource.h"#import "C:\Program Files\Common Files\Microsoft Shared\Smart Tag\MSTAG.TLB" raw_interfaces_only, raw_native_types, no_namespace, named_guids class ATL_NO_VTABLE CRecognizer :    public CComObjectRootEx<CComSingleThreadModel>,   public CComCoClass<CRecognizer, &CLSID_Recognizer>,   public IDispatchImpl<IRecognizer, &IID_IRecognizer, &LIBID_MESSENGERSMARTTAGLib>,   public IDispatchImpl<ISmartTagRecognizer, &IID_ISmartTagRecognizer, &LIBID_SmartTagLib>,   public IDispatchImpl<ISmartTagRecognizer2, &IID_ISmartTagRecognizer2, &LIBID_SmartTagLib>{public:    CRecognizer();    ~CRecognizer();DECLARE_REGISTRY_RESOURCEID(IDR_RECOGNIZER)DECLARE_PROTECT_FINAL_CONSTRUCT()BEGIN_COM_MAP(CRecognizer)    COM_INTERFACE_ENTRY(IRecognizer)//Removed -- COM_INTERFACE_ENTRY(IDispatch)    COM_INTERFACE_ENTRY2(IDispatch, IRecognizer)    COM_INTERFACE_ENTRY(ISmartTagRecognizer)    COM_INTERFACE_ENTRY(ISmartTagRecognizer2)END_COM_MAP()// IRecognizerpublic:// ISmartTagRecognizer    STDMETHOD(get_ProgId)(BSTR * ProgId);    STDMETHOD(get_Name)(INT LocaleID, BSTR * Name);    STDMETHOD(get_Desc)(INT LocaleID, BSTR * Desc);    STDMETHOD(get_SmartTagCount)(INT * Count);    STDMETHOD(get_SmartTagName)(INT SmartTagID, BSTR * Name);    STDMETHOD(get_SmartTagDownloadURL)(INT SmartTagID, BSTR * DownloadURL);    STDMETHOD(Recognize)(BSTR Text, IF_TYPE DataType, INT LocaleID,                  ISmartTagRecognizerSite * RecognizerSite);private:    long lCount;    SAFEARRAY *psa;// ISmartTagRecognizer2    STDMETHOD(Recognize2)(BSTR Text, IF_TYPE DataType, INT LocaleID, ISmartTagRecognizerSite2 * RecognizerSite2, BSTR ApplicationName, ISmartTagTokenList * TokenList)    {        return E_NOTIMPL;    }    STDMETHOD(get_PropertyPage)(INT SmartTagID, INT LocaleID, VARIANT_BOOL * HasPropPage)    {        if (HasPropPage == NULL)            return E_POINTER;		            return E_NOTIMPL;    }    STDMETHOD(DisplayPropertyPage)(INT SmartTagID, INT LocaleID)    {        return E_NOTIMPL;    }    STDMETHOD(SmartTagInitialize)(BSTR ApplicationName)    {        return E_NOTIMPL;    }};					
  8. فتح الملف Recognizer.cpp وإضافة التعليمة البرمجية التالية نهاية الملف:
    CRecognizer::CRecognizer(){    Messenger::IMsgrObject2Ptr oMsgrObj = NULL;    Messenger::IMsgrUsersPtr oUsers = NULL;    Messenger::IMsgrUserPtr oUser = NULL;    SAFEARRAYBOUND rgsaBound[1];    long rgIndices[1];		    HRESULT hr;		    // Create an instance of Instant Messenger.    oMsgrObj.CreateInstance("Messenger.MsgrObject");    // Get the list of contacts    oUsers = oMsgrObj->GetList(Messenger::MLIST_CONTACT);    // Store the number of contacts you have.    lCount = oUsers->GetCount();    rgsaBound[0].lLbound = 0;    rgsaBound[0].cElements = lCount;    // Create a SAFEARRAY to hold the list of contacts.    psa = SafeArrayCreate(VT_VARIANT, 1, rgsaBound);    // Loop through all contacts.    for (long l=0; l<lCount-1; l++)    {        rgIndices[0] = l;	        // Set the specific user.        oUser = oUsers->Item(l);        // Convert the Friendly Name to lower case        // and store it in a VARIANT.        _variant_t v = _wcslwr(oUser->GetFriendlyName());        // Put the VARIANT into the SAFEARRAY.       hr = SafeArrayPutElement(psa, rgIndices, &v);    }}CRecognizer::~CRecognizer(){    // Destroy the SAFEARRAY.    SafeArrayDestroy(psa);}HRESULT CRecognizer::get_ProgId(BSTR * ProgId){    // Set the ProgID of the Recognizer interface.    *ProgId = SysAllocString(L"MessengerSmartTag.Recognizer");    return S_OK;}HRESULT CRecognizer::get_Name(INT LocaleID, BSTR * Name){    // Set a short title about the recognizer.    *Name = SysAllocString(L"Microsoft Messenger Contacts Visual C++ Recognizer");    return S_OK;}HRESULT CRecognizer::get_Desc(INT LocaleID, BSTR * Desc){    // Set a long description of the recognizer.    *Desc = SysAllocString(L"Microsoft Messenger recognizes your Instant Messenger Contacts");    return S_OK;}HRESULT CRecognizer::get_SmartTagCount(INT * Count){    // Set the number of Smart Tags that are supported.    *Count = 1;    return S_OK;}HRESULT CRecognizer::get_SmartTagName(INT SmartTagID, BSTR * Name){    // This method is called the same number of times as you    // return in SmartTagCount. This method sets a unique name    // for the Smart Tag.    *Name = SysAllocString(L"microsoft/messenger#contacts");    return S_OK;}HRESULT CRecognizer::get_SmartTagDownloadURL(INT SmartTagID, BSTR * DownloadURL){    // Set the URL that gets embedded in documents.    *DownloadURL = NULL;    return S_OK;}HRESULT CRecognizer::Recognize(BSTR Text, IF_TYPE DataType, INT LocaleID,       ISmartTagRecognizerSite * RecognizerSite){    // The Recognize method is called and passed a text value.    // You should recognize strings in the text and set up the actions.    WCHAR *pch, *strText = _wcslwr(Text);    ISmartTagProperties  *pSmartTagProp = NULL;    long rgIndices[1];    HRESULT hr;    // Look through all contacts    for (long l = 0; l<lCount; l++)    {        rgIndices[0] = l;        // Get the contact name.        _variant_t v;        hr = SafeArrayGetElement(psa,rgIndices,&v);        // Convert the VARIANT to a BSTR.        _bstr_t bstrContact = v;        // Loop through the string looking for contacts.        for (pch = strText; (pch = wcsstr(pch, bstrContact))!=NULL; pch++)        {                // Create a new property bag.            hr = RecognizerSite->GetNewPropertyBag(&pSmartTagProp);            if (SUCCEEDED(hr)) {                // Commit the Smart Tag to the property bag.		                                hr = RecognizerSite->CommitSmartTag(                      _bstr_t("microsoft/messenger#contacts"),                      pch - strText+1, wcslen(bstrContact),                      pSmartTagProp);                                if (pSmartTagProp != NULL)                    pSmartTagProp->Release();            }        }    }    return S_OK;}					
  9. افتح الملف Action.h ثم استبدال محتويات الفئة التعليمة البرمجية التالية:
    ///////////////////////////////////////////////////////////////////////////// // CAction#include "Resource.h"#import "C:\Program Files\Common Files\Microsoft Shared\Smart Tag\MSTAG.TLB" raw_interfaces_only, raw_native_types, no_namespace, named_guids class ATL_NO_VTABLE CAction :    public CComObjectRootEx<CComSingleThreadModel>,   public CComCoClass<CAction, &CLSID_Action>,   public IDispatchImpl<IAction, &IID_IAction, &LIBID_MESSENGERSMARTTAGLib>,   public IDispatchImpl<ISmartTagAction, &IID_ISmartTagAction, &LIBID_SmartTagLib>,   public IDispatchImpl<ISmartTagAction2, &IID_ISmartTagAction2, &LIBID_SmartTagLib>{public:   CAction(){}DECLARE_REGISTRY_RESOURCEID(IDR_ACTION)DECLARE_PROTECT_FINAL_CONSTRUCT()BEGIN_COM_MAP(CAction)    COM_INTERFACE_ENTRY(IAction)//Removed -- COM_INTERFACE_ENTRY(IDispatch)    COM_INTERFACE_ENTRY2(IDispatch, IAction)    COM_INTERFACE_ENTRY(ISmartTagAction)    COM_INTERFACE_ENTRY(ISmartTagAction2)END_COM_MAP()// IActionpublic:// ISmartTagAction    STDMETHOD(get_ProgId)(BSTR * ProgId);    STDMETHOD(get_Name)(INT LocaleID, BSTR * Name);    STDMETHOD(get_Desc)(INT LocaleID, BSTR * Desc);    STDMETHOD(get_SmartTagCount)(INT * Count);    STDMETHOD(get_SmartTagName)(INT SmartTagID, BSTR * Name);    STDMETHOD(get_SmartTagCaption)(INT SmartTagID, INT LocaleID,                  BSTR * Caption);    STDMETHOD(get_VerbCount)(BSTR SmartTagName, INT * Count);    STDMETHOD(get_VerbID)(BSTR SmartTagName, INT VerbIndex, INT * VerbID);    STDMETHOD(get_VerbCaptionFromID)(INT VerbID, BSTR ApplicationName,                  INT LocaleID, BSTR * Caption);    STDMETHOD(get_VerbNameFromID)(INT VerbID, BSTR * Name);    STDMETHOD(InvokeVerb)(INT VerbID, BSTR ApplicationName,                  IDispatch * Target, ISmartTagProperties * Properties,                  BSTR Text, BSTR Xml);// ISmartTagAction2    STDMETHOD(get_VerbCaptionFromID2)(INT VerbID, BSTR ApplicationName, INT LocaleID, ISmartTagProperties * Properties, BSTR Text, BSTR Xml, IDispatch * Target, BSTR * Caption)    {        if (Caption == NULL)            return E_POINTER;        return E_NOTIMPL;    }    STDMETHOD(InvokeVerb2)(INT VerbID, BSTR ApplicationName, IDispatch * Target, ISmartTagProperties * Properties, BSTR Text, BSTR Xml, INT LocaleID)    {        return E_NOTIMPL;    }    STDMETHOD(get_IsCaptionDynamic)(INT VerbID, BSTR ApplicationName, INT LocaleID, VARIANT_BOOL * Dynamic)    {        if (Dynamic == NULL)            return E_POINTER;        return E_NOTIMPL;    }    STDMETHOD(get_ShowSmartTagIndicator)(INT VerbID, BSTR ApplicationName, INT LocaleID, VARIANT_BOOL * Visible)    {        if (Visible == NULL)            return E_POINTER;        return E_NOTIMPL;    }    STDMETHOD(SmartTagInitialize)(BSTR ApplicationName)    {        return E_NOTIMPL;    }};					
  10. فتح الملف Action.cpp وإضافة التعليمة البرمجية التالية إلى نهاية الملف:
    HRESULT CAction::get_ProgId(BSTR * ProgId){   // Set the ProgID of the Action interface.   *ProgId = SysAllocString(L"MessengerSmartTag.Action");   return S_OK;}HRESULT CAction::get_Name(INT LocaleID, BSTR * Name){   // Set a short name describing the Action.   *Name = SysAllocString(L"Messenger Smart Tag");   return S_OK;}HRESULT CAction::get_Desc(INT LocaleID, BSTR * Desc){   // Set a long description describing the action.   *Desc = SysAllocString(L"Provides actions for the Messenger Smart Tag");   return S_OK;}HRESULT CAction::get_SmartTagCount(INT * Count){    // Set the number of smart tags this action supports.    *Count = 1;    return S_OK;}HRESULT CAction::get_SmartTagName(INT SmartTagID, BSTR * Name){    // This method is called the same number of times as you    // return in SmartTagCount. This method sets a unique name    // for the smart tag.    *Name = SysAllocString(L"microsoft/messenger#contacts");    return S_OK;}HRESULT CAction::get_SmartTagCaption(INT SmartTagID, INT LocaleID, BSTR * Caption){    // This caption is displayed on the menu for the smart tag.    *Caption = SysAllocString(L"Messenger Smart Tag");    return S_OK;}HRESULT CAction::get_VerbCount(BSTR SmartTagName, INT * Count){    // Return the number of verbs we support.    if (wcsstr(SmartTagName,L"microsoft/messenger#contacts") != 0) {        *Count = 2;    }    return S_OK;}HRESULT CAction::get_VerbID(BSTR SmartTagName, INT VerbIndex, INT * VerbID){    // Return a unique ID for each verb we support.    *VerbID = VerbIndex;    return S_OK;}HRESULT CAction::get_VerbCaptionFromID(INT VerbID, BSTR ApplicationName,                     INT LocaleID, BSTR * Caption){    // Set a caption for each verb. This caption is displayed    // on the Smart Tag menu.    switch (VerbID) {      case 1:        *Caption = SysAllocString(L"Send this contact an Instant Message");        break;      case 2:        *Caption = SysAllocString(L"Send email to this contact");        break;      default:        *Caption = NULL;        break;    }    return S_OK;}HRESULT CAction::get_VerbNameFromID(INT VerbID, BSTR * Name){    // Set a string name for each verb.    switch (VerbID) {      case 1:        *Name = SysAllocString(L"SendInstantMessage");        break;      case 2:        *Name = SysAllocString(L"SendEmail");        break;    }    return S_OK;}HRESULT CAction::InvokeVerb(INT VerbID, BSTR ApplicationName,      IDispatch * Target, ISmartTagProperties * Properties,      BSTR Text, BSTR Xml){    // This method is called when a user invokes a verb    // from the Smart Tag menu.    Messenger::IMessengerApp2Ptr oMessenger = NULL;    Messenger::IMsgrObject2Ptr oMsgrObj = NULL;    Messenger::IMsgrUsersPtr oUsers = NULL;    Messenger::IMsgrUserPtr oUser = NULL;    _variant_t v;		    // Create an instance of Instant Messenger.    oMessenger.CreateInstance("Messenger.MessengerApp");    oMsgrObj.CreateInstance("Messenger.MsgrObject");    // Get a list of contacts.    oUsers = oMsgrObj->GetList(Messenger::MLIST_CONTACT);    // Loop through all contacts.    for (long l=0; l<(oUsers->GetCount()-1); l++)    {        // Get a specific contact.        oUser = oUsers->Item(l);        // Check to see if the contact is the correct one.	if (wcscmp(_wcslwr(oUser->GetFriendlyName()),_wcslwr(Text)) == 0)        {            switch (VerbID) {              case 1:                // The user wants to display the Instant Message                // box to send the contact a message.                v = oUser.GetInterfacePtr();					                oMessenger->LaunchIMUI(v);                break;              case 2:                // Shell the "mailto" protocol to start the                // user's mail program and create a new message.                _bstr_t bstrTemp = "mailto:";                bstrTemp += oUser->GetEmailAddress();				                                ShellExecute(0,"open",bstrTemp,NULL,NULL,1);                break;            }        }    }    return S_OK;}					
  11. فتح الملف Stdafx.h وإضافة السطر التالي بعد السطر الذي يقرأ # تضمين <atlcom.h>:
    #import "C:\Program Files\Messenger\msmsgs.exe"						
    NOTE : تغيير مسار الملف Msmsgs.exe إلى نقطة التثبيت لـ Messenger الفورية. الموقع الافتراضي لـ Messenger الفورية هو C:\Program Files\Messenger.
  12. اضغط المفتاح F7 لإنشاء DLL.

back to the top


خطوات تسجيل العلامة الذكية DLL



قبل أن تتمكن من استخدام أي DLL العلامات الذكية, يجب تسجيل فإنه على النظام. تسجيل COM عادي تتم نيابة عنك عند ترجمة المشروع أو استدعاء Regsvr32.exe مع اسم DLL. يجب عليك إنشاء إدخالات التسجيل الإضافية التي ليست جزء من التسجيل COM العادي بحيث يمكن تعريف تطبيقات Office DLL كـ DLL العلامات الذكية. للقيام بهذا، اتبع الخطوات التالية:
  1. من سطر الأوامر, بدء Regedit.exe.
  2. عند Tag\Actions HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart , إضافة مفتاح فرعي جديد باسم MessengerSmartTag.Action.
  3. عند Tag\Recognizers HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart , إضافة مفتاح فرعي جديد باسم MessengerSmartTag.Recognize.
  4. أغلق محرر التسجيل.

back to the top


خطوات اختبار العلامة الذكية DLL



العلامات الذكية obey طراز الأمان نفسها كما وحدات الماكرو. إذا تم تعيين إعدادات الأمان الخاصة التطبيق إلى مرتفع, لا يتم تحميل DLL العلامات الذكية إلا إذا DLL هو رقمياً (كما أيضاً الحالة مع وحدات الماكرو VBA). لمزيد من المعلومات على توقيع رقمي, راجع المقطع "References".

لاختبار DLL Recognizer/إجراء مخصص العلامات الذكية في Word, اتبع الخطوات التالية:
  1. بدء تشغيل Messenger الفورية وتسجيل الدخول.

    ملاحظة : نموذج " العلامات الذكية " يتطلب أن تسجيل الدخول إلى Messenger الفورية; إذا كان الذي لا بتسجيل الدخول إلى " الفورية Messenger، " DLL مخصصة تحميل ولكن لا يتعرف على أية جهات اتصال.
  2. بدء تشغيل Word 2002. في القائمة أدوات، أشر إلى ماكرو ثم انقر فوق الأمان . تعيين أمان الماكرو إلى متوسط ثم انقر فوق موافق . إذا تم تعيين إعداد أمان الماكرو إلى مرتفع مسبقاً, إعادة تشغيل Word.
  3. اكتب الاسم المألوف من جهة اتصال في مستند جديد (على سبيل المثال، وليد عامر) ثم اضغط ENTER. يظهر خط باهتة تحت الاسم المألوف للإشارة أن فإنه يتم التعرف على أنها " العلامات الذكية ". حرك الماوس فوق الاسم المألوف ويظهر الزر " إجراء العلامة الذكية ".
  4. انقر فوق إجراء العلامة الذكية ثم حدد أحد العناصر الإجراء المخصص من القائمة المنسدلة. يمكنك إرسال البريد الإلكتروني أو رسالة فورية إلى جهة الاتصال من المستند الجديد.
يمكنك استخدام خطوات مشابهة لاختبار DLL العلامات الذكية في Excel 2002.


back to the top


استكشاف الأخطاء وإصلاحها



إذا كان لديك مشاكل الحصول على " العلامات الذكية " المخصصة الخاصة بك للعمل, تأكد أولاً من أن يتم تحميل DLL العلامات الذكية المخصصة. في Word أو Excel، في القائمة أدوات ، انقر فوق خيارات تصحيح تلقائي , انقر فوق علامة التبويب علامة ذكية ثم التأكد من أنه تم تحديد تسمية النص باستخدام " العلامات الذكية " ومن أن لديك DLL العلامات الذكية سرد ويتم تحديد. إذا لم يكن مسروداً " العلامة الذكية " الخاصة بك, فإنه قد لا يتم بشكل صحيح تسجيل.

تنفيذ للفئة أداة أو الإجراء المخصص حالة مصدر المشكلة ، التي يمكن تصحيح DLL العلامات الذكية كما تفعل أية DLL Visual C++. تعيين نقطة توقف في المنشئ للفئة Recognizer. عند ضغط F5 تصحيح التطبيق, مربع حوار يظهر ويطلب لملف التنفيذي لجلسة التصحيح. حدد إما Winword.exe أو Excel.exe . عند Excel أو Word يبدأ ثم تحميل " العلامة الذكية " فواصل التعليمات البرمجية عند نقطة إيقاف يواجهها ثم التي يمكن للخطو خلال التعليمات البرمجية من أجل التصحيح.

back to the top

REFERENCES


يتم توفير وثائق هذه الواجهات, مع مكتبة الأنواع المطلوبة تعرّف بها، في الذكية العلامات Software Development Kit (SDK). إن التي لم مسبقاً قد بذلك, يجب تثبيت SDK العلامات الذكية قبل المتابعة مع الخطوات لإنشاء العينة " العلامات الذكية ". يمكنك الحصول على SDK العلامات الذكية من Microsoft Office XP Developer (MOD) المضغوطة, أو تحميل فإنه من موقع ويب Microsoft Developer Network (MSDN) التالية:


لمزيد من المعلومات حول إنشاء مخصص DLLs Recognizer/إجراء العلامات الذكية, راجع في ملف Development العلامات الذكية تعليمات الذي تم تضمينه مع SDK العلامات الذكية.

للحصول على معلومات إضافية حول التواقيع الرقمية, انقر فوق رقم المقالة أدناه لعرض المقالة في قاعدة معارف Microsoft:
247257 خطوات INFO: من أجل توقيع .cab على ملف
للحصول على معلومات حول استخدام CLSIDs تسجيل DLL العلامات الذكية بدلاً من ProgIDs, راجع مقالة التالية في Microsoft Knowledge Base:
294422 BUG: إشارة حالة غير Updated عند أثناء تمكين أو تعطيل العلامات الذكية


back to the top

factoid sdk ذكية

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 292596 - آخر مراجعة: 02/28/2014 04:26:40 - المراجعة: 10.1

Microsoft Excel 2002 Standard Edition, Microsoft Word 2002 Standard Edition, Microsoft Visual C++ 6.0 Professional Edition

  • kbnosurvey kbarchive kbmt kbhowto kbhowtomaster KB292596 KbMtar
تعليقات