Office XP'DEKI kullanım için bir Akıllı Etiket'i DLL ATL oluşturma

Makale çevirileri Makale çevirileri
Makale numarası: 292596 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Akıllı etiketler, Office XP, Office kullanıcılarından kendi Office'in içeriğiyle daha fazla etkileşim sağlayan ile sunulan bir teknoloji olan belgeler. Bir Akıllı Etiket'i Office belgesindeki kendisiyle ilişkili özel eylemler sahip olarak tanınan metin öğesidir. Bu özel metin öğelerinin bir örnek, bir Word belgesi veya Excel çalışma kitabı yazdığınız e-posta adı olabilir. E-posta adı, bir akıllı etiket olarak tanınıyorsa, kullanıcı bir veya daha fazla metnin üzerinde gerçekleştirilecek eylemler ile sunulur. E-posta adı ile ilişkili olası ek kişi bilgilerine bakmak için veya bu kişi için yeni bir e-posta iletisi göndermek için eylemlerdir.

Office belgelerini kullanmak için kendi akıllı etiket tanıyıcıyı/eylem dinamik bağlantı kitaplığı (DLL)'nı geliştirme özellikleri, Office XP genişletebilirsiniz. Bu makalede, Active Template Library (ATL) kullanarak bir akıllı etiket DLL nasıl açıklar ve hangi kayıt defteri ayarlarını tanımlamak ve akıllı etiket dll DOSYASı kullanmak Office XP için gerekli anlatılır.

Not: Excel 2002 ve Word 2002, akıllı etiketler desteği yalnızca Office XP uygulamaları olur. Ancak, bu makalede sunulan bilgiler, akıllı etiket teknolojisi uyarlar herhangi bir uygulama için Smart Tag geliştirme için uygulanabilir. Bir akıllı etiket standart bir bileşen nesne modeli DLL'dir iki özel arabirim uygulayan (COM) DLL: ISmartTagRecognizer ve ISmartTagAction. ISmartTagRecognizer arabirim, bir akıllı etiket olarak bir belgeye girilen metni tanır. ISmartTagAction arabirim, kullanıcının isteği sırasında belirli bir akıllı etiket dizesini eylemleri gerçekleştirir. Bu durumda <a0></a0> değilse bu arabirimler aynı DLL'DE uygulanması gerekir. Bir tanıyıcı DLL ve sonra bir veya daha fazla eylem farklı bir eylem için tek bir akıllı etiket türü genişletme dll olabilir.




Akıllı etiket ATL DLL'DE oluşturma adımları


Aşağıdaki adımlar, bir basit akıllı etiketi Microsoft Network (MSN) anlık ileti kişilerini algılar ve kullanıcının e-posta veya anlık iletiler, tanınan bir ilgili kişiye gönderme olanağı sağlar. DLL'I oluşturun. Anlık ileti, bu örneği kullanmak için gereklidir. Anlık ileti yoksa, bir kopyasını, aşağıdaki MSN Web sitesinden edinebilirsiniz:
http://messenger.msn.com/

  1. Visual C++ ATL COM AppWizard yeni bir proje oluşturun. MessengerSmartTag projenin adı.
  2. ATL COM sihirbazını başlatmak için Tamam ' ı tıklatın. Sonraki iletişim kutusunda, Dinamik bağlantı kitaplığı ' nın seçili olduğundan emin olun ve sonra son ' u tıklatın. Projeyi oluşturmak için Tamam ' ı tıklatın.
  3. Ekle menüsünden tanıyıcıyı sınıfı oluşturmak için <a0></a0>, ATL nesne Ek Yardım düğmesini tıklatın. Basit bir nesne seçin ve ileri ' yi tıklatın. Kısa ad, algılayıcı yazın ve Tamam ' ı tıklatın.
  4. Eylem sınıfı oluşturmak için <a0></a0>, adım 3'ndaki yönergeleri izleyin ancak Eylem için kısa bir ad yazın.
  5. ClassView'nı açın ve MessengerSmartTag sınıf ' ı genişletin. CRecognizer sınıfı sağ tıklatın ve Gerçekleştir arabirimi seçin. Uyarı iletişim kutusu görüntülendiğinde, Tamam ' ı tıklatın. Gözat ' ı tıklatın ve Microsoft Akıllı etiketler 1.0 tür kitaplığı ' nı seçin. ISmartTagRecognizer ve ISmartTagRecognizer2 arabirimi seçip TAMAM'A basın.

    Not: varsayılan konumu Microsoft Akıllı etiketler 1.0 tür kitaplığı, C:\Program Files\Common Files\Microsoft Shared\Mstag.tlb olur.
  6. ClassView, CAction sınıfı sağ tıklatın ve Gerçekleştir arabirimi seçin. Uyarı iletişim kutusu görüntülendiğinde, Tamam ' ı tıklatın. Gözat ' ı tıklatın ve Microsoft Akıllı etiketler 1.0 tür kitaplığı ' nı seçin. ISmartTagAction ve ISmartTagAction2 arabirimi seçin ve Tamam ' ı tıklatın.
  7. Recognizer.h dosyayı açın ve sınıf içeriğini aşağıdaki kodla değiştirin:
    ///////////////////////////////////////////////////////////////////////////// 
    // 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()
    
    // IRecognizer
    public:
    // 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 dosyayı açın ve sona erdirmek için aşağıdaki kodu ekleyin dosyanın:
    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 dosyayı açın ve sınıf içeriğini aşağıdaki kodla değiştirin:
    ///////////////////////////////////////////////////////////////////////////// 
    // 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()
    
    // IAction
    public:
    // 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 dosyayı açın ve aşağıdaki kodu dosyanın sonuna ekleyin:
    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 dosyayı açın ve okuyan satırdan sonra aşağıdaki satırı ekleyin # include <atlcom.h>:
    #import "C:\Program Files\Messenger\msmsgs.exe"
    						
    Not: Msmsgs.exe dosyasının yolu, anlık ileti için yükleme noktasına değiştirin. Anlık ileti için varsayılan konum C:\Program olan Files\Messenger.
  12. Dll DOSYASıNı oluşturmak için F7 tuşuna basın.




Akıllı etiket DLL kayıt adımları



Herhangi bir akıllı etiket DLL kullanabilmeniz için sistemde kaydettirmeniz gerekir. Projeyi derlemek veya Regsvr32.exe DLL adını aramak için normal COM kayıt yapılır. Office uygulamaları, DLL bir akıllı etiket DLL olarak belirleyebilir, normal COM kayıt bir parçası olan ek kayıt defteri girdileri oluşturmanız gerekir. Bunu yapmak için şu adımları izleyin:
  1. Bir komut satırından Regedit.exe'yi başlatın.
  2. HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag\Actions MessengerSmartTag.Action adlı yeni bir alt anahtar ekleyin.
  3. HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag\Recognizers MessengerSmartTag.recognize adlı yeni bir alt anahtar ekleyin.
  4. Kayıt Defteri Düzenleyicisi'ni kapatın.




Akıllı etiket DLL sınama adımları



Akıllı etiketler, aynı güvenlik modeli olarak makrolar uyacak. Uygulamanın güvenlik ayarları yüksek olarak ayarlanırsa, DLL (de VBA makrolarını olduğu gibi) dijital olarak imzalanır sürece akıllı etiket DLL yüklemez. Dijital imzalama ile ilgili daha fazla bilgi için "Başvurular" bölümüne bakın.

Word'deki özel akıllı etiket tanıyıcıyı/eylem DLL sınamak için <a0></a0>, aşağıdaki adımları izleyin:
  1. Instant Messenger'ı başlatın ve oturum açın.

    Not: Smart Tag, anlık Messenger, özel DLL oturum açmamanız durumunda, anlık Messenger; oturum gerektirir örnek yükler, ancak tüm kişileri tanımıyor.
  2. Word 2002'yi başlatın. Araçlar menüsünden, makro seçin ve Güvenlik ' i tıklatın. Makro güvenliği Orta olarak ayarlayın ve Tamam ' ı tıklatın. Makro güvenlik ayarını daha önce yüksek olarak ayarlanmışsa, Word'Ü yeniden başlatın.
  3. Yeni bir belgeye (örneğin, Gamze Etikan) kolay bir ilgili kişinin adını yazın ve ENTER tuşuna basın. Bir akıllı etiketi tanınır belirtmek için kolay bir ad altında silik BIR çizgi görünür. Fareyi kolay adın üzerine taşıyın ve akıllı etiket eylemi düğmesi görünür.
  4. Akıllı etiket eylemi tıklatın ve özel eylem öğeleri a?a?? aç?lan menüden seçin. Yeni belgeyi ilgili kişiye bir e-posta veya anlık ileti gönderebilirsiniz.
Excel 2002'de akıllı etiket DLL sınamak için benzer adımları'nı kullanabilirsiniz.





Sorun giderme



Kendi özel Akıllı çalışmak için etiketler alma sorunlarınız varsa, önce özel akıllı etiket DLL yüklendiğinden emin olun. Word veya Excel'i, Araçlar menüsünden Otomatik Düzelt Seçenekleri ' ni tıklatın, Smart Tag sekmesini tıklatın ve Akıllı etiketler etiket metni seçili olduğunu ve akıllı etiket DLL dosyanızın listelenen ve seçili emin olun. Bilgisayarınıza bir akıllı etiket listeleniyorsa, doğru kaydedilmemiş olabilir.

Tanıyıcı veya eylem özel sınıf yürütülmesini sorununun kaynağını, herhangi bir Visual C++ DLL gibi bir akıllı etiket DLL hata ayıklama. Kesme noktası tanıyıcıyı sınıfı için Oluşturucu ayarlayın. Uygulama hata ayıklama için F5 tuşuna bastığınızda, bir iletişim kutusu görüntülenir ve yürütülebilir bir dosya için hata ayıklama oturumu için sorar. Winword.exe veya Excel.exe seçin. Excel veya Word'Ü başlatır ve bir akıllı etiket yükler, kodunuzu kesme noktasında ayırır ve hata ayıklama kodu içinde adım.



Başvurular


Belgeleri tanımlayan, gerekli bir tür kitaplığı ile birlikte, bu arabirimler için akıllı etiket Software Development Kit'e (SDK) içinde sağlanır. Önceden yapmadıysanız, Smart Tag örnek oluşturmak için adımlara devam etmeden önce Akıllı Etiket SDK'yı yüklemelisiniz. Akıllı Etiket SDK the Microsoft Office XP Developer (MOD arasında) CD-ROM'u edinmeniz veya aşağıdaki Microsoft Developer Network (MSDN) Web sitesinden yükleyin:
Akıllı etiket Yazılım Geliştirme Seti
http://www.microsoft.com/downloads/details.aspx?familyid=3d8edcee-0246-43ef-a70f-94c0899f1e8f&displaylang=en



Özel akıllı etiket tanıyıcıyı/eylem dll dosyaları oluşturma ile ilgili daha fazla bilgi için Akıllı Etiket SDK ile birlikte gelen akıllı etiket geliştirme Yardım dosyasına bakın.

Dijital imzalar hakkında ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
247257BILGI: adımlar, .cab dosyasının imzalama için
Clsıd, Progıd yerine bir akıllı etiket DLL kaydetmek için kullanma hakkında daha fazla bilgi için Microsoft Knowledge Base'de aşağıdaki makaleye bakın:
294422Hata: Durum bayrağı etkinleştir veya akıllı etiketleri devre dışı bırak güncelleştirilmiyor




Özellikler

Makale numarası: 292596 - Last Review: 24 Şubat 2014 Pazartesi - Gözden geçirme: 10.2
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Word 2002 Standard Edition
  • Microsoft Visual C++ 6.0 Professional Edition
Anahtar Kelimeler: 
kbnosurvey kbarchive kbmt kbhowto kbhowtomaster KB292596 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:292596

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