I have a few questions about memory involving activex dlls.

It is my understanding that the entire dll would be loaded into memory when i first reference the dll in my exe (eg first time I set new a class from the dll). Is this correct?

Afterwards, if i instantiate (set new) any more of the dll classes they too load into and takeup more memory for each new copy?

I can seemingly free up the memory of each instantiation by setting the object reference to nothing.

Now, does the original memory containing the entire dll ever free, or how can I free up this memory? I'm just curious if I know the user will use some function of my exe that will make use of the dll then it appears a dll does not have the benefit of reducing the memory used by my ap correct? Anyone have specifics on how & when memory allocation works with activex dlls?