title: Sending string data between threads (Win32)
body: <p>This is a fairly straightforward question, I'm basically looking for a 'best practice' approach to what I'm trying to do.</p>
  
  <p>I have a Win32 GUI application which starts up a worker thread to do a bunch of blocking calls. I want this thread to send string messages back to the GUI so they can be displayed to the user.</p>
  
  <p>Currently I'm thinking the use of SendMessage would be a good approach, using WM_COPYDATA? Is this on the right track? I did originally have a thread safe queue class which sent simple notification messages back to the GUI thread, which then popped the string off the queue. However I soon took a step back and realised I didn't need the queue; I could just send the string directly.</p>
  
  <p>Any tips? Thanks!</p>
  
  <p>Edit: And for completeness, I'm using C++.</p>