Only one copy of a DLL can exist in memory at a time. For this reason, VB doesn’t allow you to create DLLs exposing single use instancing classes. An EXE, however, allows you to create OLE servers that can be instanced multiple times for multiple clients. If you need a new instance of the server for each client you must create an out-of-process server in an EXE file instead of a DLL.