Hola, bueno tengo un ligero problema con este codigo eh estado intentadolo pasar a delphi pero el manejo de WideString y punteros no me reacciona, si alguien le interesa el codigo en cuestion pone la cancion actual del Windows Live Messenger, ya lo hice en c, pero no eh podido pasarlo a delphi. alguien me echa una mano?
Gracias
Codigo en C:
Código:
#include <stdio.h>
#include <wchar.h>
#include <windows.h>
void message(wchar_t *cancion,wchar_t *grupo){
HWND handle=0;
wchar_t buffer[200];
swprintf(buffer,L"Xfmedia\\0Music\\01\\0Xfmedia: {1} - {0}\\0");
swprintf(buffer+wcslen(buffer),cancion);
swprintf(buffer+wcslen(buffer),L"\\0");
swprintf(buffer+wcslen(buffer),grupo);
swprintf(buffer+wcslen(buffer),L"\\0Inhuman Rampage\\0WMContentID\\0");
COPYDATASTRUCT data;
data.cbData=(wcslen(buffer)*2)+2;
data.dwData=0x0547;
data.lpData=buffer;
handle = FindWindow("MsnMsgrUIManager", NULL);
SendMessage(handle, WM_COPYDATA, (WPARAM)NULL,(LPARAM)&data);
}
int main()
{
message(L"Cancion",L"Grupo");
getchar();
return 0;
}
Intento de Codigo en Delphi:
Código:
program msn;
//{$APPTYPE CONSOLE}
uses
SysUtils,
windows,strutils;
type wchar_t=array[0..200] of wchar;
procedure msnMessage(msj:String);
var handle:HWND;
var buffer:wideString;
var pointer:^wideString;
var data:COPYDATASTRUCT;
var s:wchar_t;
var pointerdata:^COPYDATASTRUCT;
begin
buffer:='Xfmedia\0Music\01\0Xfmedia: {1} - {0}\0Hola\0Delphi\0Inhuman Rampage\0WMContentID\0';
handle:=0;
data.dwData:=$0547;
data.cbData:=(length(buffer)*2)+2;
data.lpData:=@buffer;
handle:= FindWindow('MsnMsgrUIManager', nil);
if(handle>0) then
begin
SendMessage(handle,$004A,WPARAM(nil),LPARAM(@data));
end;
end;
begin
msnMessage('Mensajito');
end.
/////////////
Ahora bien, yo se que el codigo en delphi tiene muchas fallas a diferencia de c, espero me puedan ayudar, de antemano gracias.