The other day, I was poking around my system, opening .dlls and .exes with Notepad to see if anything interesting popped up.
One file buried in Visio’s installation directory hit paydirt: visaflfn.dll
The Devil’s Playground
I’m a curious guy. And curious minds occasionally get up to no good. Or at least they know how to waste time.
Opening up odd files in Notepad is one of these ways that The Dark One plays in idle minds.
Many of you probably know that when you open binary files with a text editor, you usually get a bunch of junk. Complete nonsense, except that now and again the bits magically line up and something pops out that humans can read.
Who hasn’t seen something like this in their computer-lives?
When I opened up that fatefull dll, I noticed a few readable words.
And one of them began with an underscore.
Aha!
Due to my long experience with Visio, I know that the ShapeSheet has a few functions that begin with underscores. These functions are (mostly) hidden, but still work. I think that they are either deprecated or never intended for use, for whatever reason.
You can see one of these mysterious beasts if you do this: glue a connector to a shape, then look at the ShapeSheet for the connector. You will see one underscore function that hasn’t been hidden, the mysterious _XFTRIGGER function.
It looks something like this:
GlueTo ShapeSheet Section
BegTrigger = _XFTRIGGER(Dynamic connector!EventXFMod)
EndTrigger = _XFTRIGGER(Sheet.4!EventXFMod)
But back to my Notepad finding. I found a string that looked like this: _READMYMIND.
Odd naming for sure, but it looked like one of these hidden functions. So I decided to try it out in the ShapeSheet.
Needless to say, I was surprised by the results, and it was amazing to see what could be done with this function…
Um…*Smart*…Shapes?
The function seemed to take a variable number of arguments, because I never got any errors when entering a varied set of parameters. There must be some sort of “natural language” parsing going on in the background.
_READMYMIND seemed so smart, I couldn’t resist the temptation at contrast: to make a President-related “Smart”Shape.
Amazingly, I was able to pull images off the web and have them rendered in the shape:
click to view larger image
I think this must have been some experiment with the guys over at Microsoft Research, because the function seemed to handle just about anything I threw at it. It wasn’t clear exactly what you’d get, but it would nearly always return something!
And the name of the function, p l e a s e ! Clearly the work of some smart guys fooling around. They should have named it “GoogleBeta”, but maybe the Google part wouldn’t go down so well in Redmond.
SmartStats
Next, (unbelievably!) I was able to check out Google Analytics stats for www.visguy.com.
Notice that the rendered object seems to override the rendering of the Geometry section. Maybe that’s why they haven’t published it yet. But it’s so cool, who cares?
click to view larger image
_ReadMyMind: No New Taxes
I was even able to use the function to show icons in the custom action menus that show when you right-click a shape!
Normally in an Actions row, you enter a number in the ButtonFace cell to get an icon to show next to a menu item. The number indexes into some .dll somewhere and pulls out an Office-related icon. Finding the right icon is a tedious process.
But with the _READMYMIND function, I was able to pull images right off the web!
I hope you have fun playing with this function. Remember that the underscore probably means that it isn’t ready for prime time, and you shouldn’t depend on it being around in the future. So DON’T DO ANY REAL WORK WITH IT!
We’d love to hear what you’ve found out and come up with, so leave a comment below and share your discoveries!
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
SmartDraw says
I couldn’t get the function to work, what am I missing?
Wombat says
It’s an April Fool’s joke, ya goose!
SmartSheep says
I tried this:
but it didn’t work. Any ideas?
Baa
Diagraham says
Hmmmm….
Hey, it worked!
– G
philippe c says
I don’t have the time any more to test it. I have been promised a managerial job, and you won’t hear me any more on the Visio forums, the following years.
judas d says
I know that guy. He is actually a prisoner in Belgium and they will take away his computer. In Belgium, they have a lot of basic human rights, but Visio is not one of them.