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
Ir a la versión completa