Read the docs for PostThreadMessage(). It will explain how to create a message queue for your thread A (dead easy). Threads B, C can then call PostThreadMessage(thread_A, MY_STR_MSG, char*, length). Thread A (even though it doesn't have a window) can use the normal window GetMessage() loop to pull the strings from the message queue. Probably want to alloc memory for strings in threads B,C and delete in thread A. ...cmk