Programación General > C/C++

 portapapeles de windows

(1/1)

takyo:
muy buenas ando bastante perdido con el portapapeles de windows
tengo la funcion getPortapapeles y setPortapapeles.

el get funciona correctisimo pero en cambio el set no me funciona del todo bien, me explico:
aqui intento copiar y pegar lo que tenemos en el portapapeles

--- Código: C++ ---main()    {    char *buffer = new char[1024];     buffer = getPortapapeles();    setPortapapeles(buffer);// no me funciona el set} 
en cambio si solo queremos pegar al portapapeles todo va correcto

--- Código: C++ ---main()    {    char *buffer = new char[1024]; //    buffer = getPortapapeles();    strcpy(buffer,"esto si que funciona");    setPortapapeles(buffer);// inserta correctamente} 
aqui las dos funciones get & set que por separado funcionan a la perfeccion pero juntas dejan mucho que desear

--- Código: C++ ---char * getPortapapeles()    {       char buffer[1024];    if ( OpenClipboard(NULL) )     {        HANDLE hData = GetClipboardData( CF_TEXT );        if (!hData) return 0;        char * buffer = (char*)GlobalLock( hData );         GlobalUnlock( hData );        CloseClipboard();        return buffer;    }return 0;} 

--- Código: C++ ---setPortapapeles(char *str)    {    if (OpenClipboard(NULL))    {        HGLOBAL hClipboardData;        char * pchData;         EmptyClipboard();        hClipboardData = GlobalAlloc(GMEM_DDESHARE, strlen(str)+1);        pchData = (char*)GlobalLock(hClipboardData);        strcpy(pchData, str);        GlobalUnlock(hClipboardData);        SetClipboardData( CF_TEXT,hClipboardData); //CF_TEXT  CF_HDROP        CloseClipboard();    }} 
alguien es tan amable de decirme porque me fallan?
gracias!!!

Navegación

[0] Índice de Mensajes

Ir a la versión completa