title: WM_COPYDATA with and without quotes yields different results
body: <p>Using WM_COPYDATA to pass command line params to another app instance with Delphi XE as follows:</p>
  
  <pre><code>function DAppInstance.SendParamsToPrevInstance(AWindowHandle: THandle): Boolean;
  var
    copyData: TCopyDataStruct;
    cmdParams : string;
    i : integer;
  begin
    cmdParams := '';
    for i := 1 to ParamCount do
      cmdParams := cmdParams + ParamStr(i); //#1
    //cmdParams := cmdParams + '"' + ParamStr(i) + '" '; //#2
    //cmdParams := cmdParams + format('"%s" ', [ParamStr(i)]); //#3
    //cmdParams := cmdParams + format('%s;', [ParamStr(i)]); //#4
  
    copyData.lpData := pchar(cmdParams);
    copyData.cbData := 1 + (bytelength(cmdParams));
    copyData.dwData := WaterMark;  //ID for APP
  
    result := SendMessage(AWindowHandle, 
      WM_COPYDATA, 
      Application.Handle, 
      LPARAM(@copyData)) = 1;
  end;
  </code></pre>
  
  <p>yields different results if the strings are quoted / appended to.</p>
  
  <p>if #1 is used - the string comes in clean but is not usable if not quoted as filenames can have spaces and this:</p>
  
  <pre><code>C:\Users\MX4399\Research\delphi\instance\doc with spaces.doc
  </code></pre>
  
  <p>will be see as 3 paramaters in the end, while using #2 to quote the strings, or appending anything (#3, #4) causes </p>
  
  <pre><code>"C:\Users\MX4399\Research\delphi\instance\doc with spaces.doc"'#$FF00'궳獧
  </code></pre>