Add-in Express™ for Microsoft® Office and .netAdd-in Express Home > Add-in Express for Office and .NET > Online Guide > Programming Office smart tags Creating smart tags
Add-in Express for Office and .net allows you to create smart tags for Microsoft Excel, Word, Outlook (with Word as a default e-mail editor) and PowerPoint
in Office 2010, 2007, Office 2003 and 2002 (XP). The smart tag project below is written in VB.NET and works for Word 2002 - 2010. It demonstrates how you create
a smart tag handling a list of fixed words and providing the words with a sample action. The source code of the project - both VB.NET and C# versions -
can be downloaded here; the download is labeled Add-in Express for Office and .NET sample projects.
A bit of theory
Smart Tags were introduced in Word 2002 and Excel 2002. Then they added PowerPoint 2003 to the list of smart tag host applications.
Now, in Office 2010 Microsoft declared smart tags deprecated. Although you can still use the related APIs in projects for Excel 2010,
Word 2010, and PowerPoint 2010, these applications do not automatically recognize terms, and recognized terms are no longer underlined.
Users must trigger recognition and view custom actions associated with text by right-clicking the text and clicking the Additional Actions
on the context menu. Please see Changes in Word 2010
and Changes in Excel 2010.
Below is what was said about the Smart Tag technology in earlier days:
This technology provides Office users with more interactivity for the content of their Office documents. A smart tag is an element
of text in an Office document having custom actions associated with it. Smart tags allow recognizing such text using either a dictionary-based
or a custom-processing approach. An example of such text might be an e-mail address you type into a Word document or an Excel workbook.
When smart tag recognizes the e-mail address, it allows the user to choose one of the actions associated with the text. For e-mail addresses,
possible actions are to look up additional contact information or send a new e-mail message to that contact.
Per-user smart tags
A smart tag is a per-user thing that requires registering in HKCU. In other words, a smart tag cannot be registered for all users on the machine.
Instead, it must be registered for every user separately.
Step 1. Creating a smart tag library project
Make sure that you have administrative permissions before running Visual Studio. Also, if you have Windows Vista, Windows 7, or Windows 2008,
run Visual Studio via Run as Administrator.
In Visual Studio, open the New Project dialog and navigate to the Extensibility folder.

Choose Add-in Express Smart Tag and click OK.
This starts the Smart tag project wizard.
In the first wizard window, you choose your programming language:

In the window below, choose Generate new or specify an existing .snk file and click Next.

If you do not know anything about strong names or do not have a special strong name key file, choose Generate new. If you are in doubt, choose Generate new.
If, later on, you need to use a specific strong name key file, you will be able to specify its name on the Signing tab of your project properties;
you are required to unregister your add-in project before using another strong name.
The project wizard creates and opens a new solution in IDE. The solution contains an only project, the smart tag project.
Note. Do not delete the SmartTagImpl.vb (SmartTagImpl.cs) file required by the Add-in
Express implementation of the Smart Tag technology. Usually, you do not need to modify it.
The Smart Tag project contains the SmartTagModule.vb (or SmartTagModule.cs) file described in the next step.
Step 2. Smart Tag module
SmartTagModule.vb (or SmartTagModule.cs) is a smart tag module that is the core part of the smart tag project. The module is a container for ADXSmartTag components.
It contains the SmartTagModule class, a descendant of ADXSmartTagModule, which implements the COM interfaces required by the Smart Tag technology and allows managing smart tags.
To review its source code, right-click the file in Solution Explorer and choose View Code in the popup menu.
In the code of the module, pay attention to the CurrentInstace property. It returns the current instance of the Smart Tag module.
This is useful when, for example, you need to access a method defined in the module from the code of another class.

Step 3. Smart tag module designer
The module designer allows setting smart tag properties and adding Smart Tag components to the module.
In Solution Explorer, right-click the SmartTagModule.vb (or SmartTagModule.cs) file and choose the View Designer popup menu item.
Click the designer surface when you need to set properties of the Smart tag module in the Properties window.

Step 4. Adding a new smart tag
To add a smart tag to your Smart tag library, you use the Add Smart Tag command (see below) that adds a new ADXSmartTag component onto the module.


Select the newly added component and, in the Properties window, specify the caption for the added smart tag in the
Caption property. The value of this property will become a caption of the smart tag context menu. Also,
specify the phrase(s) recognizable by the smart tag in the RecognizedWords string collection.

Step 5. Adding smart tag actions
Now you add smart tag actions to the context menu of your smart tag. To add a new smart tag action, add an item to the Actions collection and set
its Caption property that will become the caption of the appropriate item in the smart tag context menu (see the screenshot below).
To handle the Click event of the action, close the Actions collection editor, and, in the Properties window, select the newly added action.
Then add the Click event handler and write your code:
Private Sub AdxSmartTagAction1_Click(ByVal sender As System.Object, _
ByVal e As AddinExpress.SmartTag.ADXSmartTagActionEventArgs) _
Handles AdxSmartTagAction1.Click
MsgBox("Recognized text is '" + e.Text + "'!")
End Sub
Step 6. Running the smart tag
Choose the Register Add-in Express Project item in the Build menu, restart Word, and enter words recognizable by your smart tag into a document.
If you use an Express edition of Visual Studio, the Register Add-in Express Project item is located in the context menu of the module's designer surface.
Please remember that Smart tags are deprecated in Excel 2010 and Word 2010. Though, you can still use
the related APIs in projects for Excel 2010 and Word 2010.

Also, you can check if your smart tag is present in the AutoCorrect dialog:
- In Office 2002-2003, choose Tools | AutoCorrect in the main menu and find your smart tag on the Smart Tags tab.
- In Office 2007, the path to this dialog is as follows: Office button | Word Options | Add-ins | "Manage" Smart Tags | Go.
- In Office 2010, see File tab | Options | Add-ins | "Manage" Actions | Go.

Step 7. Debugging the smart tag
To debug your Smart Tag, just specify the host application as the Start External Program in the Project Options window and press F5.

Step 8. Deploying the smart tag
Links to step-by-step instructions for deploying smart tags are given in the table below. Background information is provided in
Deploying Office extensions.
Table 4. Deploying Smart tags: links to step-by-step instructions
|
How you install the Office extension
|
Per-user Smart tag Installs and registers for the user running the installer
|
Per-machine Smart tag Installs and registers for all users on the PC
|
| A user runs the installer from a CD/DVD, hard disk or local network location. |
Windows Installer
ClickOnce
ClickTwice :)
|
N/A |
| A corporate admin uses Group Policy to install your Office extension for a specific group of users in the corporate network;
the installation and registration occurs when a user logs on to the domain. For details, please see the following article on our blog:
HowTo: Install a COM add-in automatically using Windows Server Group Policy. |
Windows Installer
|
N/A |
| A user runs the installer by navigating to a web location or by clicking a link. |
ClickOnce
ClickTwice :)
|
N/A |
What's next?
Here you can download the project described above, both VB.NET and C# versions; the download link is labeled
Add-in Express for Office and .NET sample projects.
You may want to check Development where we describe typical misunderstandings and provide useful tips.
Back to Add-in Express for Office and .NET homepage |