SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: zed2000 en Lunes 28 de Mayo de 2007, 20:21
-
Hola, como puedo copiar un archivo al portapapeles
he intentado pero al pegar me sale un mensaje:
no se puede copiar el archivo: no se puede leer el disco o archivo de origen esta es la funcion
y se alguien tiene algun tutorial please.
gracias
FILE *entrada = fopen(argv[1], "rb")) == NULL);
while (!feof(entrada))
{
fread(bufer, 1, 100, entrada);
}
/* Obtener 'handle' y bloquearlo */
hPortapapeles = GlobalAlloc(GHND, 12775);
p = GlobalLock(hPortapapeles);
/* Copiar texto al bloque de memoria */
for (i = 0; i <= 12775; i++)
{ ((char *) p) = bufer;}
/* Desbloquear 'handle' */
GlobalUnlock(hPortapapeles);
/* Abrir portapapeles y vaciarlo */
OpenClipboard(NULL);
EmptyClipboard();
CloseClipboard();
/* Definir tipo de datos del portapapeles */
OpenClipboard(NULL);
SetClipboardData(CF_HDROP, hPortapapeles);
CloseClipboard();
free(bufer);
-
Estas usando un formato, CF_HDROP, que no se corresponde con los datos que especificas.
Para copiar un archivo usando este formato no se copian directamente los datos sino que se usa una estructura donde se indica el path de los archivos.
Estructura DROPFILES (http://msdn2.microsoft.com/en-us/library/ms538048.aspx)