If you are calling a DLL from an ATEasy thread, it is your responsibility to make sure that the DLL is "thread-safe" by linking it only with libraries that have support for multiple threads. You must also be sure to synchronize access to your global data.
All of ATEasy's internal controls, COM objects, and ActiveX controls are thread-safe. You can call them from any thread and you do not have to worry about what support they have for multithreading.
However, COM objects from outside ATEasy are another matter. COM objects can have varying amounts of support for multithreading, ranging from none to complete. Some COM objects can only be created and/or used in the same thread; others can be created and/or used from any thread, but that involves additional overhead. ATEasy insulates the user from the details of handling COM objects that are only partially thread-safe. ATEasy knows and is able to retrieve the details of what the object supports. Using a special COM service called the Global Interface Table, ATEasy is able to synchronize access to COM objects whether they are in or out of the calling process.