Date: 02.23.14 - 3:11pm
A feature i learned about a while back, but had never used yet, is the GlobalMultiUse class property in an ActiveX object.
For those not aware, any functions in this type of class, will be globally usable without a class name prefix, and without any initial class instantiation in any project that has a reference to the ActiveX dll or ocx.
This sounds like a very cool feature so that you can extend the base VB6 library with your most often used used functions.
I was always a little scared though about adding these to the core add on dll library i use because i wanted to make sure these functions would not all of a sudden create conflicts with copies of these same functions in local project modules.
Turns out everything works perfectly. If a local function exists with the same name, the local one is used. If you want to specifically use the one from the dll, you can call it through ProjectName.MethodName
The only time I ran into a problem with this (and I went looking for trouble) is when I had two GlobalMultiUse classes in the same ActiveX object, that both had the same the function name. It shows up twice in the object browser and intellisense. but you always get ambigious name detected. It would probably be fine if they were in different dlls though because you could use the projectname to switch between them. Also not even giving them different prototypes helped out. I am actually surprised the dll compiled.
Anyway I am glad they added this feature, its going to save a lot of repetitive code that I am always looking around for and copy and pasting into new projects.