Función SetClipboardData (winuser.h)

Coloca datos en el Portapapeles en un formato de Portapapeles especificado. La ventana debe ser el propietario actual del Portapapeles y la aplicación debe haber llamado a la función OpenClipboard . (Al responder al mensaje de WM_RENDERFORMAT , el propietario del Portapapeles no debe llamar a OpenClipboard antes de llamar a SetClipboardData).

Sintaxis

HANDLE SetClipboardData(
  [in]           UINT   uFormat,
  [in, optional] HANDLE hMem
);

Parámetros

[in] uFormat

Tipo: UINT

Formato del Portapapeles. Este parámetro puede ser un formato registrado o cualquiera de los formatos estándar del Portapapeles. Para obtener más información, vea Formatos de Portapapeles estándar y Formatos de Portapapeles registrados.

[in, optional] hMem

Tipo: HANDLE

Identificador de los datos en el formato especificado. Este parámetro puede ser NULL, lo que indica que la ventana proporciona datos en el formato del Portapapeles especificado (representa el formato) a petición; esto se conoce como representación diferida. Si una ventana retrasa la representación, debe procesar los mensajes WM_RENDERFORMAT y WM_RENDERALLFORMATS .

Si SetClipboardData se realiza correctamente, el sistema posee el objeto identificado por el parámetro hMem . Es posible que la aplicación no escriba en o libere los datos una vez que se haya transferido la propiedad al sistema, pero puede bloquear y leer de los datos hasta que se llame a la función CloseClipboard . (La memoria debe desbloquearse antes de cerrar el Portapapeles). Si el parámetro hMem identifica un objeto de memoria, el objeto debe haberse asignado mediante la función con la marca GMEM_MOVEABLE .

Valor devuelto

Tipo: HANDLE

Si la función se ejecuta correctamente, el valor devuelto es el identificador de los datos.

Si la función no se realiza correctamente, el valor devuelto es NULL. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Windows 8: Los mapas de bits que se van a compartir con las aplicaciones de la Tienda Windows deben tener el formato CF_BITMAP (mapa de bits dependiente del dispositivo).

Si una aplicación llama a SetClipboardData en respuesta a WM_RENDERFORMAT o WM_RENDERALLFORMATS, la aplicación no debe usar el identificador después de llamar a SetClipboardData .

Si una aplicación llama a OpenClipboard con hwnd establecido en NULL, EmptyClipboard establece el propietario del Portapapeles en NULL; Esto hace que SetClipboardData produzca un error.

El sistema realiza conversiones implícitas de formato de datos entre determinados formatos del Portapapeles cuando una aplicación llama a la función GetClipboardData . Por ejemplo, si el formato CF_OEMTEXT está en el Portapapeles, una ventana puede recuperar datos en el formato CF_TEXT . El formato del Portapapeles se convierte al formato solicitado a petición. Para obtener más información, vea Formatos de Portapapeles sintetizados.

Ejemplos

Para obtener un ejemplo, vea Copiar información en el Portapapeles.

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluir Windows.h)
Library User32.lib
Archivo DLL User32.dll
Conjunto de API ext-ms-win-ntuser-misc-l1-2-0 (introducido en Windows 8.1)

Consulte también

Portapapeles

CloseClipboard

Conceptual

GetClipboardData

OpenClipboard

Referencia

RegisterClipboardFormat

WM_RENDERALLFORMATS

WM_RENDERFORMAT