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
- 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
- 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
- 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; 
- } 
-   
- 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!!!