01 July 2012
24 April 2012
Map of Russia
Ported from the Wikipedia SVG.
Download: http://unmanagedvisio.com/map-of-russia-in-visio/
24 August 2011
Web site started
Recently I decided to start a website to present my Visio utilities in a “proper” way. Currently there is only the “Find command” plugin (updated version, plus x64 version), although there will a number of other Visio utilities in the nearest future.
Keep close eye on: http://unmanagedvisio.com
Labels: Addin, FindCommand, Office, Visio, Website
27 June 2011
“Find Visio Command” Addin
Here is a new add-in which allows to quickly find commands in Visio 2010. Just type in the keyword which is part of command name, and hit enter. All commands which contain this keyword will be shown by the plugin as buttons. You can either use the command found directly from the results pane, or add it to the quick launch toolbar.
Download it here!
The big picture:
Introductory video:
Limitations:
- Does not work with x64 version of Microsoft Visio 2010 yet.
- Search works in in English only yet.
Labels: Addin, Office 2010, Ribbon, Visio
05 April 2011
Using the same set of button images with transparency in Visio 2003, 2007 and 2010
It comes without saying that ribbon interface is cool, times easier to use (especially for developers =), and supports many new controls and neat features.
However, if you write a Visio add-in that targets multiple Visio versions at the same time, and have some custom buttons with images (with transparency), you might run into trouble with that new Visio 2010 Ribbon user interface needs different “flavor” of images compared to Visio 2003 and 2007. So you’ll have to to either create two separate sets of images (one set for pre-ribbon version of Visio, the second set for the ribbon one), or to “dance around a little” and make both versions consume the same set of images. The article focuses on the second approach I ended up with.
Read more »15 May 2010
Persisting Visio shapes
After this post in microsoft.public.visio.developers newsgroup I was asked a few times, how to save Visio shapes in external source exactly, so here is the code to store master/shape in a stream and then drop it back to the document:
To save Visio shapes in some external system (persist them) you can:
- Query master or shape you want to persist for IDataObject interface.
- Using this interface, obtain data blob in "Visio 11 Shapes" clipboard format (or maybe actually anything that contains “Shapes” word to be compatible with further Visio versions, please refer to the code).
Now this blob can be stored any way you want (database/memory/file/whatever). The sample code just saves it to a string variable in base64 encoding. To drop shapes back to the drawing, you can use "Drop" functions of Visio document/page. It turned out that these functions are happy enough with plain IDataObject interface passed in. So, to drop the stored master or shape back to the drawing:
- Create you own object that implements IDataObject interface.
- Load this object with your data
- Pass this object in one of those "Drop" functions (e.g. Page.Drop)
Labels: C#, C++, IDataObject, Office, Visio
28 August 2009
Making the Visio ribbon tab document-dependent
This post explains how to make a ribbon tab in Visio 2010 ribbon document-specific. Means, activate a custom ribbon tab only for a specific document.
Download C# sample project (VS2008)
Download C++/ATL sample project (VS2008)
This article discusses the implementation of a document-specific tab in a COM add-in; also, it focuses on nasty details you might be interested in if you e.g. program unmanaged C++. Note that you could do this thing by other means, e.g. by embedding your custom interface in a document template using new Visio 2010 property Document.CustomUI.
Nevertheless, one of the ways to it is:
- Create a Visio add-in that supports ribbon (as described in previous post)
- Add onLoad event to the ribbon XML. This will allow you to obtain the ribbon manager.
<customUI onLoad="OnLoad" ...>
- In the event handler for the onLoad event, save passed-in ribbon manager. This is needed to force update of the ribbon.
// this function provides us with IRibbonUI object, called when XML is loaded public void OnLoad(object obj) { vsoRibbonUI = (Office.IRibbonUI) obj; }
Labels: C#, C++, Office 2010, Ribbon, Visio