2011-09-26 9 views
1

(메모리/파일 시스템에서) 클립 보드 데이터의 백업을 허용하는 Win32 API를보고 있으며 나중에 SetClipboardData를 사용하여 재설정 할 수 있습니다.win32 API를 사용하여 클립 보드 데이터를 백업하고 복원하십시오.

나는 win32 API 세트를 보았고 OpenClipboard, getClipboardData 및 SetClipboardData가 나를 위해 작업을 수행한다는 것을 알고 있습니다. 하지만 나는 형식에 대해 알지 못하고 어떤 API도 클립 보드 데이터의 형식을 가져올 수 없으므로 GetClipboardData 함수에서 전달할 형식 매개 변수를 이해하지 못합니다.

가능한 최대 형식을 지원하고 싶습니다. 지연 렌더링과 같은 일부 데이터 유형을 알고 저장할 수 없습니다. 가장 좋은 방법은 무엇입니까?


텍스트 콘텐츠를 백업하고 복원 할 수 있습니다. 어떻게 비트 맵 형식에 대해 동일한 작업을 수행 할 수 있습니다. 기본적으로 BITMAP을 핸들에서 메모리에 저장하는 방법 (GetClipboardData를 사용하여 가져옴)

답변

1

EnumClipboardFormats()을 호출하여 클립 보드에서 형식을 찾습니다. 특정 형식의 클립 보드 데이터가 포함 된 HGLOBAL을 얻으려면 GetClipboardData()으로 전화하십시오. GlobalSize()을 호출하여 메모리 크기를 알 수 있습니다. HGLOBAL으로 싸여진 메모리를 읽으려면 GlobalLock()GlobalFree()을 사용하십시오.

+2

일부 앱/형식은'GetClipboardData()'와'SetClipboardData()'대신'OleGetClipboard()'와'OleSetClipboard()'를 사용해야하므로,주의해야합니다. –

+0

텍스트 콘텐츠를 백업하고 복원 할 수 있습니다. 어떻게 비트 맵 형식에 대해 동일한 작업을 수행 할 수 있습니다. 기본적으로 BITMAP을 핸들에서 메모리에 저장하는 방법 (GetClipboardData를 사용하여 가져옴) – hjindal

+0

확실히 할 수있는 방법이 있지만 새로운 질문으로 요청해야합니다. –