Sharing objects between multiple instances of a DLL

A problem with a DLL under Delphi 2 / Windows 95:

I create a simple object in the initialization-section of an DLL and store the reference on it in an global variable of the
DLL. Unfortunatly this section is executed each time, another process is loading the DLL and each instance of the DLL allocates
it's own memory for global variables - can anybody help me, how I'm able to create an "internal DLL-memory" storing
* I was able to pass the Object pointer with a memoryMappedFiles (as advises in the windows API documentation), but the
typecast on that pointer produces an independent instance in each DLL-reference (how is this working? I expected an protection
* Is there any other solution rather than using OLE?

Thank you very much for any hints (via mail or reply)!

Joerg Wuennemann