質問させてください
Halbow氏のTCommonMemoryクラスを試してみようと、以下のコードを書いたのですがどうにも巧く文字列を取得してくれません。
ステータスバーだと取れるのですが何故かTEditだと文字列の取得に失敗します(文字列の長さの取得には成功している)
どなたか理由の分かる方はいらっしゃいませんでしょうか?
なおターゲットプログラムは勿論起動してますしTEditが貼られてます。

procedure TForm1.Button1Click(Sender: TObject);
var
hTargetForm,hEdit:HWND;
Len: integer;
AllocSize:DWORD;
CM:TCommonMemory;
PC:PChar;
s:string;
begin
hTargetForm := FindWindow('TTargetForm',nil);
hStatusbar := FindWindowEx(hTargetForm,0,'TEdit',nil);
if hEdit = 0 then begin
ShowMessage('Target Statusbar is not found');
exit;
end;
AllocSize := 1 + LOWORD(SendMessage(hEdit,WM_GETTEXTLENGTH, 0, 0));
CM := GetCommonMemory(hEdit,AllocSize);
GetMem(PC,AllocSize);
Memo1.Clear;
Len := LOWORD(SendMessage(hEdit,WM_GETTEXT,AllocSize,LPARAM(CM.MemPtr)));
CM.Read(0,PC,Len);
SetString(s,PC,Len);
Memo1.Lines.Add(s);
FreeMem(PC);
CM.Free;
end;