>>the third-party DLL definitely has data shared across multiple threads and
>>even processes, I think.
Then it also has means to ensure that these don't hamper each other, and since you are only wrapping the calls, you won't interfere with these mechanisms.
>> It really is this simple, isn't it?
If it's only local variables you deal with - yes it is. Local variables are allocated on the stack, and since each thread has its own stack, this is guaranteed to be safe - thread-safe, literally (pardon the pun ;o)