title: Python Win32Gui automation - Send WM_COPYDATA to get data from BSPlayer
body: <p>I am desperately trying to automate BSPlayer from my script. 
  I was successful in sending simple command ids to the BSPlayer window(volume up/down, play/pause, etc.), however I am not able to get the file name back.</p>
  
  <p><a href="http://rtelsignal.narod.ru/bsplayer_api_pas.html" rel="nofollow">Here</a> is the BSPlayer API.
  I was able to emulate in python the first parts, however the WM_COPYDATA doesn't work. </p>
  
  <p>Here is my Python code:</p>
  
  <pre><code>copyDataCmd = COPYDATASTRUCT()
  copyDataCmd.dwData = self.BSP_GetFileName
  copyDataCmd.lpData = ""
  copyDataCmd.cbData = 4                
  win32gui.SendMessage(self.playerWindowHandler, win32con.WM_COPYDATA, 
                       ownHandler, copyDataCmd);
  </code></pre>
  
  <p>Obviously .lpData returns "" ...</p>
  
  <p>What I am trying to emulate:</p>
  
  <pre><code>cds:TCOPYDATASTRUCT; 
  buf:array[0..MAX_PATH-1] of char; 
  adr:pointer; // 
  adr:=@buf; 
  cds.dwData:=BSP_GetFileName; 
  cds.lpData:=@adr; 
  cds.cbData:=4; 
  SendMessage(bsp_hand,WM_COPYDATA,appHWND,lParam(@cds)); 
  // available in BSPlayer version 0.84.484+ // 
  // appHWND is calling application window handle 
  // File name will be copied to buf // 
  // Get open file name 
  BSP_GetFileName = $1010B;
  </code></pre>
  
  <p>To be more verbose, I am trying to get the filename from a BSPlayer window. For this I am trying to emulate the code above. I expect a buffer of some sort to be filled with my desired string, but it comes up empty.
  So, again, I want the Python equivalent of the code just above.</p>
  
  <p>For example this code was emulated succesfully:</p>
  
  <pre><code>status := SendMessage(bsp_hand,WM_BSP_CMD,BSP_GetStatus,0); 
  // available in BSPlayer version 0.84.484+ // 
  // Return player status // 0 - STOP // 1 - PAUSE 
  // 2 - PLAY // 4 - No movie   open        
  BSP_GetStatus = $10102; 
  </code></pre>
  
  <p>Thanks in advance!</p>