Vytvoření inteligentních značek DLL v ATL pro použití v sadě Office XP

Překlady článku Překlady článku
ID článku: 292596 - Produkty, které se vztahují k tomuto článku.
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Inteligentní značky jsou technologie zavedena Office uživatelům poskytnout další interaktivity obsahu jejich Office Office XP dokumenty. Inteligentní značka je prvek textu v dokumentu Office, který je rozpoznán jako nutnosti přidružen vlastní akce. Příkladem jednoho z těchto speciálních prvků text může být název e-mailu zadaný do dokumentu Word nebo sešit aplikace Excel. Pokud název e-mailu je rozpoznán jako inteligentní značku, uživateli nabídnuty jednu nebo více akcí provádět na text. Možné akce, které jsou přidruženy název e-mailu jsou vyhledat další kontaktní informace nebo odeslat novou zprávu elektronické pošty kontaktu.

Můžete rozšířit funkce sady Office XP vývoj vlastní Recognizer inteligentní značky a akce dynamické knihovny (DLL) pro použití v dokumentech sady Office. Tento článek popisuje, jak vytvářet inteligentní značky DLL pomocí knihovny Active Template (ATL) a popisuje, jaké nastavení registru jsou požadovány pro sadu Office XP identifikovat a použití inteligentních značek DLL.

Poznámka: Excel 2002 a Word 2002 jsou pouze aplikacemi sady Office XP, které podporují inteligentní značky. Informace zobrazené v tomto článku však lze použít inteligentní značku vývoj pro libovolnou aplikaci poli odpovídá technologie inteligentních značek. Inteligentní značka DLL je standardní Component Object Model (COM) DLL, která implementuje rozhraní dva speciální: ISmartTagRecognizer a ISmartTagAction. Rozhraní ISmartTagRecognizer rozpoznává text zadaný do dokumentu jako inteligentní značku. Rozhraní ISmartTagAction provede akce na určitý řetězec inteligentní značky na žádost uživatele. Není vyžadováno, být implementována těchto rozhraní ve stejné knihovně DLL. Můžete mít rozpoznávání DLL a potom jeden nebo více akce DLL rozšíření jediný typ inteligentních značek pro různé akce.




Kroky vytvoření inteligentní značku DLL ATL


Následující kroky vytvořit jednoduchý inteligentní DLL příznak, který rozpozná kontakty Microsoft Network (MSN) Instant Messenger a uživatel umožňuje odeslat rozpoznaný kontaktu e-mailu nebo rychlé zprávy. Použití Tato ukázka vyžaduje rychlé Messenger. Pokud máte Instant Messenger, můžete získat kopii z webu MSN:
http://messenger.msn.com/

  1. V jazyce C++ vytvořte nový projekt ATL COM AppWizard. Název projektu MessengerSmartTag.
  2. Klepněte na tlačítko OK spustíte Průvodce ATL COM. V dialogovém okně Další Ujistěte se, že je vybrán Dynamické knihovny a klepněte na tlačítko Dokončit. Klepněte na tlačítko OK vytvořte projekt.
  3. Chcete-li vytvořit třídu Recognizer v nabídce Vložit, klepněte na tlačítko Nový objekt ATL. Vyberte Jednoduchý objekt a klepněte na tlačítko Další. Krátký název zadejte Recognizer a klepněte na tlačítko OK.
  4. Vytvořit třídu Akce, postupujte podle pokynů v kroku 3, ale zadejte krátký název Akce.
  5. Otevřete ClassView a rozbalte MessengerSmartTag tříd. Třída CRecognizer klepněte pravým tlačítkem myši a vyberte Implementace rozhraní. Zobrazí se dialogové okno upozornění klepněte na tlačítko OK. Klepněte na tlačítko Procházet a vyberte Microsoft Smart Tags 1.0 knihovny typů. Vyberte ISmartTagRecognizer a rozhraní ISmartTagRecognizer2 a na tlačítko OK.

    Poznámka: výchozí umístění pro Microsoft Smart Tags 1.0 typ knihovna je C:\Program Files\Common Files\Microsoft Shared\Mstag.tlb.
  6. V ClassView třída CAction klepněte pravým tlačítkem myši a vyberte Implementace rozhraní. Zobrazí se dialogové okno upozornění klepněte na tlačítko OK. Klepněte na tlačítko Procházet a vyberte Microsoft Smart Tags 1.0 knihovny typů. Vyberte ISmartTagAction a rozhraní ISmartTagAction2 a klepněte na tlačítko OK.
  7. Otevření souboru Recognizer.h a obsah třídy nahraďte následující kód:
    ///////////////////////////////////////////////////////////////////////////// 
    // 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. Otevřete soubor Recognizer.cpp a přidejte následující kód ukončení souboru:
    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. Otevřete soubor Action.h a nahradit obsah třídy s následujícím kódem:
    ///////////////////////////////////////////////////////////////////////////// 
    // 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. Otevřete soubor Action.cpp a konec souboru přidejte následující kód:
    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. Otevřete soubor Stdafx.h a přidejte následující řádek po řádku přečte # include <atlcom.h>:
    #import "C:\Program Files\Messenger\msmsgs.exe"
    						
    Poznámka: změnit cestu soubor Msmsgs.exe instalačního bodu pro Instant Messenger. Výchozí umístění Instant Messenger je C:\Program Files\Messenger.
  12. Stisknutím klávesy F7 sestavení DLL.




Kroky evidence inteligentní značku DLL



Před použitím libovolné inteligentních značek DLL musíte zaregistrovat v systému. Registrace normální COM se provádí pro vás při kompilaci projektu nebo volání s názvem DLL regsvr32.exe. Musíte vytvořit další registru položky, které nejsou součástí normální registrace COM, takže aplikace Office můžete identifikovat DLL jako inteligentní značka DLL. Postupujte takto:
  1. Z příkazového řádku spustit Regedit.exe.
  2. HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag\Actions přidejte nový podklíč s názvem MessengerSmartTag.Action.
  3. HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag\Recognizers přidejte nový podklíč s názvem MessengerSmartTag.Recognize.
  4. Ukončete Editor registru.




Kroky test inteligentní značku DLL



Inteligentní značky dodržovat stejné modelu zabezpečení jako makra. Pokud nastavení zabezpečení aplikace jsou nastavena na hodnotu Vysoká, nenačte DLL inteligentních značek, dokud DLL je digitálně podepsán (jako je případ s makra VBA). Další informace o digitálního podepisování v části "Odkazy".

Testovat vlastní DLL Recognizer/akce inteligentních značek v aplikaci Word, postupujte takto:
  1. Spusťte Instant Messenger a přihlaste.

    Poznámka: Tento ukázkový inteligentní značka vyžaduje přihlašovat k Instant Messenger; Pokud není přihlášení k Instant Messenger vlastní DLL se načte, ale nerozpoznává žádné kontakty.
  2. Spusťte aplikaci Word 2002. V nabídce Nástroje přejděte na příkaz makro a klepněte na položku zabezpečení. Zabezpečení maker nastavena na hodnotu Střední a klepněte na tlačítko OK. Pokud nastavení zabezpečení maker byl dříve nastavena na hodnotu Vysoká, restartujte aplikaci Word.
  3. Zadejte popisný název kontaktu v novém dokumentu (například Jan Nový) a stiskněte klávesu ENTER. Jemné řádku se zobrazí pod popisný název označíte, že je rozpoznán jako inteligentní značku. Přesunutí myši nad popisný název a zobrazí se tlačítko Akce inteligentních značek.
  4. Klepněte na tlačítko Akce inteligentních značek a vyberte jednu z položek vlastní akce z rozevírací nabídky. Můžete odeslat e-mailu nebo rychlé zprávy kontaktu z nového dokumentu.
Podobné kroky můžete použít k testování DLL inteligentní značky v aplikaci Excel 2002.





Odstraňování potíží



Máte potíže při získávání vlastní inteligentní značky pracovat, nejprve přesvědčte, zda je načítán vlastní DLL inteligentních značek. V aplikaci Word nebo Excel v nabídce Nástroje klepněte na tlačítko Možnosti automatického opravit, klepněte na kartu Inteligentní značku a zajistit, že je vybrán Text popisku s inteligentní značky a je inteligentní značka DLL uvedené a vybrané. Pokud inteligentní značka není uveden, je pravděpodobně není správně registrován.

Spuštění vlastní akce nebo pro rozpoznávání třídy je zdrojem problému, můžete stejně jako libovolné Visual C++ DLL ladit DLL inteligentních značek. Nastavit zarážku konstruktor pro třídu Recognizer. Při stisknutí klávesy F5 ladění aplikace dialogové okno se zobrazí a požádá o spustitelného souboru pro ladicí relace. Vyberte Winword.exe nebo Excel.exe. Když Excel nebo Word spustí a načte inteligentní značku konce kód na zarážce a krokovat kód pro ladění.



Odkazy


Dokumentace pro rozhraní, spolu s potřebné typ knihovny, která definuje, je poskytován v inteligentní značku Software Development Kit (SDK). Pokud jste tak již neučinili, měli byste nainstalovat inteligentních značek SDK před pokračovat kroky vytvoření ukázkových inteligentní značky. Inteligentní značka SDK můžete získat z Microsoft Office XP Developer (MOD) CD-ROM nebo stáhnout z následujícího webu Microsoft Developer Network (MSDN):
Inteligentní značka Software Development Kit
http://www.microsoft.com/downloads/details.aspx?familyid=3d8edcee-0246-43ef-a70f-94c0899f1e8f&displaylang=en



Další informace o vytváření inteligentních značek vlastní dll Recognizer/akce naleznete v souboru nápovědy inteligentních značek Development, která je součástí SDK inteligentních značek.

Další informace o digitální podpisy klepněte na článek číslo článku databáze Microsoft Knowledge Base:
247257INFORMACE: Kroky pro podepsání souboru CAB
Informace o použití CLSID zaregistrovat inteligentních značek DLL namísto ProgID naleznete v následujícím článku databáze Microsoft Knowledge Base:
294422Chyba: Stav příznaku není aktualizována při povolení nebo zakázání inteligentních značek




Vlastnosti

ID článku: 292596 - Poslední aktualizace: 28. února 2014 - Revize: 10.2
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Word 2002 Standard Edition
  • Microsoft Visual C++ 6.0 Professional Edition
Klíčová slova: 
kbnosurvey kbarchive kbmt kbhowto kbhowtomaster KB292596 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku: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