Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

BUG: Status Flag Is Not Updated When You Enable or Disable Smart Tags


View products that this article applies to.

Symptoms

The Status flag of a smart tag is not updated when you modify the enabled/disabled state of a smart tag in Microsoft Office XP. This problem occurs on systems on which the recognizer and action interfaces of a smart tag were registered by using ProgIDs instead of CLSIDs.

↑ Back to the top


Resolution

To resolve the issue, register the action and recognizer interfaces by using the CLSIDs of the interface instead of the ProgIDs.

↑ Back to the top


Status

Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.

↑ Back to the top


More information

The enabled/disabled state of a smart tag is stored in the Status flag for the recognizer interface. Smart tags are registered in the following location:
HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag
You can register smart tag DLLs on the system by using either the ProgID or CLSID for the interface. Currently, Word and Excel use the Status flag to enable or disable the smart tag in the application. If the Status flag does not exist, the smart tag is enabled. To disable the smart tag in Word, set the Status flag at bit 8 (0x08). To disable the smart tag in Excel, set the Status flag at bit 16 (0x10). To disable the smart tag for both programs, combine the values for Excel and Word and set the Status flag to 0x08 + 0x10 = 0x18.

How to Register Smart Tag DLLs by Using CLSIDs instead of ProgIDs

When you build a smart tag DLL where both the ISmartTagAction and ISmartTagRecognizer interfaces are implemented, a ProgID for both interfaces is created in the registry. The ProgID is mapped to a CLSID, which is also contained in the registry.

To register the DLL by using its CLSID instead of its ProgID, follow these steps. The SimpleTerm.dll that is created in the "Visual Basic Tutorial: Creating a List Recognizer and Action" in the Microsoft Office Smart Tag SDK is used as an example.

WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.
  1. Open Registry Editor. To do so, click Start, click Run, and then type regedit in the Run box.
  2. To find the CLSID for the action interface, open the following registry key:
    HKEY_CLASSES_ROOT\SimpleTerm.SmartTagAction\Clsid
    In this example, SimpleTerm.SmartTagAction is the ProgID for the action interface.
  3. Copy the value of the CLSID of the action interface that is in the Clsid folder.
  4. Locate the following registry key where changes will be made:
    HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag\Actions\SimpleTerm.SmartTagAction
  5. Rename the SimpleTerm.SmartTagAction key and replace the value with the CLSID that you copied in step 3.
  6. Repeat steps 2 through 5 for the Recognizer interface. You can obtain the CLSID for the recognizer interface from the following key:
    HKEY_CLASSES_ROOT\SimpleTerm.SmartTagRecognizer\Clsid
    The registry changes will be made to the following key:
    HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Smart Tag\Recognizers\SimpleTerm.SmartTagRecognizer
NOTE: Be aware that if the Version Compatibility option on the Component tab of the SimpleTerm Properties submenu in Visual Basic is set to No Compatibility, a new CLSID is generated every time that you recompile. If it is set to Project Compatibility or Binary Compatibility, the CLSID remains the same when you recompile.

↑ Back to the top


References

For more information about creating custom smart tag recognizer/action DLLs, see the Smart Tag Development Help file that is included with the Microsoft Office Smart Tag SDK. You can obtain the Microsoft Office Smart Tag SDK from the Microsoft Office XP Developer (MOD) CD-ROM, or you can download it from the following Microsoft Developer Network (MSDN) Web site:

↑ Back to the top


Article Info
Article ID : 294422
Revision : 8
Created on : 1/1/0001
Published on : 1/1/0001
Exists online : False
Views : 622