PDA

Ver la Versión Completa : Ayuda con codigo en C hacia Delphi


javier_ecf
06-11-2010, 23:34:47
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:

#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:


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.

javier_ecf
13-11-2010, 17:36:05
Ya no me es necesario este tema, lo solucione creando una dll en c y mandando llamar sus funciones. Gracias.