Microsoft KB Archive/299239

= The Visio 2002 Developer Reference and the Visio 2002 Service Release 1 (SR-1) Developer Reference contain incorrect information about the AddOnName property =

Article ID: 299239

Article Last Modified on 9/12/2007

-

APPLIES TO


 * Microsoft Visio 2002 Standard Edition
 * Microsoft Visio 2002 Professional Edition

-



This article was previously published under Q299239





SUMMARY
The Microsoft Visio 2002 Developer Reference and the Visio 2002 Service Release 1 (SR-1) Developer Reference contain incorrect information about the AddOnName property.

Note Although the AddOnName property works as described in Microsoft Visio 2000, the functionality of this property has been altered to reduce security risks in Visio 2002. The Help file has not been updated to reflect the altered behavior in Visio 2002



MORE INFORMATION
In Visio 2000 and earlier, the string that is supplied for the AddOnName property or the argument of the RUNADDON function can be arbitrary code that Visio requested VBA to perform. With the AddOnName property, Visio tells the VBA project of the active document to run the string. With the RUNADDON function, Visio tells the VBA project of the function's document to run the string. In either case, if VBA does not recognize the string as one it can perform, Visio treats the string as the name of an add-on to start.

Starting with Visio 2002, Visio no longer tells the VBA project of the active document to run the string. Rather, it makes a more restrictive request to VBA telling it to treat the string as a procedure name (possibly qualified with reference and module names) followed by zero or more arguments. You can still cause a user interface item to call a procedure with specific arguments by setting its AddOnName property when you are using Visio 2002. If the targeted VBA project does not recognize the string as a procedure and arguments it can perform, the behavior remains the same as in earlier versions. For example, Visio will treat the string as the name of an add-on to start. In either case, there are strings that used to work but no longer do--for example, Application.Documents(&quot;stencilname&quot;).ExecuteLine(&quot;macro name&quot;).

To work around Visio 2002's more restrictive behavior, put the intended code in a procedure, or put a macro in the target document, or in a document that is referenced by the target document. You can use the CALLTHIS function instead of the RUNADDON function when you want to call code in another document that is open, such as a stencil file.

