scope in modules.

I have two classes in a module.
Why must they be Global in order to be used in another module?
I’m not sure I get the difference between Global and Public.

Methods can be Public (Anyone can access it), Private (Only the class can access it) or Protected (Only a subclass can access it)

So I’m missing the distinction between Global and Public for classes. I assume Private is only accessable to classes / methods with in the module

[quote=62487:@Brian O’Brien]I have two classes in a module.
Why must they be Global in order to be used in another module?[/quote]
They don’t
BUT if you make them public you may have to fully qualify the name

I did fully qualify the name and the only way things would compile is if I made them global.

no idea but I can say this works as expected in the frameworks & the IDE
you guys use em all the time so it better

I’m out of guesses for a friday

Still out of guesses
That shows me the errors but certainly doesn’t lead me to guess why
Nothing in COM would work if this did not work
The Profiler would not work
Reporting would just fail
Heck the IDE would not even compile

So … still out of guesses
Create a bug report & attach the project

It works here. Try reproducing it in another project.

Ok. I will. Uh… Could someone explain the difference between Public and Global?

Global means you can address it directly, with no qualifiers. Eg.,

dim s as new AShell

Public means you can address it, but you must use the module name as a namespace.

dim s as new ShellPool.AShell