OleSetClipboard 함수(ole2.h)

특정 데이터 개체에 대한 포인터를 클립보드에 배치합니다. 이렇게 하면 OleGetClipboard 함수에서 데이터 개체에 액세스할 수 있습니다.

구문

HRESULT OleSetClipboard(
  [in] LPDATAOBJECT pDataObj
);

매개 변수

[in] pDataObj

클립보드에 배치할 데이터를 가져올 수 있는 데이터 개체의 IDataObject 인터페이스에 대한 포인터입니다. 이 매개 변수는 NULL일 수 있습니다. 이 경우 클립보드가 비워집니다.

반환 값

이 함수는 성공에 대한 S_OK 반환합니다. 다른 가능한 값은 다음과 같습니다.

반환 코드 설명
CLIPBRD_E_CANT_OPEN
OleSetClipboard 내에서 사용되는 OpenClipboard 함수가 실패했습니다.
CLIPBRD_E_CANT_EMPTY
OleSetClipboard 내에서 사용되는 EmptyClipboard 함수가 실패했습니다.
CLIPBRD_E_CANT_CLOSE
OleSetClipboard 내에서 사용되는 CloseClipboard 함수가 실패했습니다.
CLIPBRD_E_CANT_SET
OleSetClipboard 내에서 사용되는 SetClipboardData 함수가 실패했습니다.

설명

클립보드 작업의 원본 역할을 할 수 있는 애플리케이션을 작성하는 경우 다음을 수행해야 합니다.

  • 클립보드로 복사하거나 잘라내는 데이터에 대한 데이터 개체( IDataObject 인터페이스)를 만듭니다. 이 개체는 OLE 끌어서 놓기 작업에 사용되는 것과 동일한 개체여야 합니다.
  • OleSetClipboard를 호출하여 IDataObject 포인터를 클립보드에 배치하므로 OleGetClipboard 함수에 액세스할 수 있습니다. 또한 OleSetClipboard 는 데이터 개체에서 IUnknown::AddRef 메서드를 호출합니다.
  • 원하는 경우 데이터 개체를 클립보드에 배치한 후 해제하여 애플리케이션에서 IUnknown::AddRef 카운터를 해제합니다.
  • 사용자가 데이터를 잘라내고(문서에서 삭제하고 클립보드에 배치하는 경우) 문서에서 데이터를 제거합니다.
모든 형식은 지연된 렌더링을 사용하여 클립보드에 제공됩니다( OleFlushClipboard 를 호출하면 데이터를 클립보드에 렌더링하지 않는 한 클립보드에는 데이터 개체에 대한 포인터만 포함됨). OLE 1 호환성에 필요한 형식은 존재하는 OLE 2 형식에서 합성되며 클립보드에도 배치됩니다.

OleSetClipboard 함수는 클립보드의 소유권을 내부 OLE 창 핸들에 할당합니다. 지연된 렌더링을 사용하도록 설정하기 위해 데이터 개체의 참조 수가 1씩 증가합니다. 참조 수는 OleFlushClipboard 함수에 대한 호출 또는 NULL을 매개 변수 값으로 지정하는 OleSetClipboard에 대한 후속 호출(클립보드 지우기)에 의해 감소됩니다.

애플리케이션이 직접 또는 간접적으로 OpenClipboard 함수를 호출하여 클립보드를 열면 클립보드를 닫을 때까지 다른 애플리케이션에서 사용할 수 없습니다. 클립보드가 현재 다른 애플리케이션에서 열려 있으면 OleSetClipboard 가 실패합니다. 내부 OLE 창 핸들은 클립보드에 있는 데이터 개체의 IDataObject 구현에 위임하여 WM_RENDERFORMAT 메시지를 충족합니다.

NULLOleSetClipboard의 매개 변수 값으로 지정하면 현재 클립보드가 비워집니다. 클립보드의 내용이 이전 OleSetClipboard 호출의 결과이고 클립보드가 해제된 경우 이전 호출에 전달된 IDataObject 포인터가 해제됩니다. 클립보드 소유자는 이전에 제공한 데이터가 더 이상 클립보드에 없다는 신호로 이를 사용해야 합니다.

애플리케이션을 닫은 후 데이터를 클립보드에 남겨 두어야 하는 경우 NULL 매개 변수 값으로 OleSetClipboard를 호출하는 대신 OleFlushClipboard를 호출해야 합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 ole2.h
라이브러리 Ole32.lib
DLL Ole32.dll
API 세트 ext-ms-win-com-ole32-l1-1-5(Windows 10 버전 10.0.15063에 도입됨)

추가 정보

OleFlushClipboard

OleGetClipboard

OleIsCurrentClipboard