Share via


SetClipboardData 함수(winuser.h)

지정된 클립보드 형식으로 클립보드에 데이터를 배치합니다. 창은 현재 클립보드 소유자여야 하며 애플리케이션은 OpenClipboard 함수를 호출해야 합니다. (WM_RENDERFORMAT 메시지에 응답할 때 클립보드 소유자는 SetClipboardData를 호출하기 전에 OpenClipboard를 호출해서는 안 됩니다.)

구문

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

매개 변수

[in] uFormat

형식: UINT

클립보드 형식입니다. 이 매개 변수는 등록된 형식 또는 표준 클립보드 형식일 수 있습니다. 자세한 내용은 표준 클립보드 형식 및등록된 클립보드 형식을 참조하세요.

[in, optional] hMem

형식: HANDLE

지정된 형식의 데이터에 대한 핸들입니다. 이 매개 변수는 NULL일 수 있으며, 이는 요청 시 창이 지정된 클립보드 형식(형식 렌더링)으로 데이터를 제공한다는 것을 나타냅니다. 이를 지연 렌더링이라고 합니다. 창이 렌더링을 지연하는 경우 WM_RENDERFORMAT 처리하고 메시지를 WM_RENDERALLFORMATS 합니다.

SetClipboardData가 성공하면 시스템은 hMem 매개 변수로 식별된 개체를 소유합니다. 소유권이 시스템에 전송되면 애플리케이션이 데이터를 쓰거나 해제할 수 없지만 CloseClipboard 함수가 호출될 때까지 데이터를 잠그고 읽을 수 있습니다. (클립보드를 닫기 전에 메모리 잠금을 해제해야 합니다.) hMem 매개 변수가 메모리 개체를 식별하는 경우 GMEM_MOVEABLE 플래그가 있는 함수를 사용하여 개체를 할당해야 합니다.

반환 값

형식: HANDLE

함수가 성공하면 반환 값은 데이터에 대한 핸들입니다.

함수가 실패하면 반환 값은 NULL입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

Windows 8: Windows 스토어 앱 앱과 공유할 비트맵은 CF_BITMAP 형식(디바이스 종속 비트맵)이어야 합니다.

애플리케이션이 WM_RENDERFORMAT 또는WM_RENDERALLFORMATS 대한 응답으로 SetClipboardData를 호출하는 경우 SetClipboardData가 호출된 후에는 애플리케이션이 핸들을 사용하지 않아야 합니다.

애플리케이션이 hwnd가 NULL로 설정된 OpenClipboard를 호출하는 경우 EmptyClipboard는 클립보드 소유자를 NULL로 설정합니다. 이로 인해 SetClipboardData가 실패합니다.

시스템은 애플리케이션이 GetClipboardData 함수를 호출할 때 특정 클립보드 형식 간에 암시적 데이터 형식 변환을 수행합니다. 예를 들어 CF_OEMTEXT 형식이 클립보드에 있는 경우 창은 CF_TEXT 형식으로 데이터를 검색할 수 있습니다. 클립보드의 형식은 요청된 요청된 형식으로 변환됩니다. 자세한 내용은 합성 클립보드 형식을 참조하세요.

예제

예제는 클립보드에 정보 복사를 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 winuser.h(Windows.h 포함)
라이브러리 User32.lib
DLL User32.dll
API 세트 ext-ms-win-ntuser-misc-l1-2-0(Windows 8.1 도입)

참고 항목

클립보드

CloseClipboard

개념

GetClipboardData

OpenClipboard

참조

RegisterClipboardFormat

WM_RENDERALLFORMATS

WM_RENDERFORMAT