다음을 통해 공유


데이터 개체 및 데이터 소스: 조작

데이터 개체 또는 데이터 소스를 만든 후에 여러 가지 일반적인 작업을 삽입 하 고 제거 하는 데이터, 데이터에의 형식 열거 등과 같은 데이터를 수행할 수 있습니다.이 문서에서는 가장 일반적인 작업을 완료 하는 데 필요한 기술을 설명 합니다.다음 내용을 다룹니다.

  • 데이터 소스에 데이터를 삽입합니다.

  • 데이터 개체에서 사용할 수 있는 형식을 결정합니다.

  • 데이터 개체에서 데이터 검색

데이터 소스에 데이터를 삽입합니다.

데이터는 데이터 소스에 삽입 되는 방법을 여부 데이터가 즉시 제공에 따라 다릅니다 또는 시 하는 미디어에 제공 됩니다.가능성은 다음과 같습니다.

9s5z33c4.collapse_all(ko-kr,VS.110).gif즉시 데이터 (즉시 렌더링)를 제공합니다.

  • 호출 COleDataSource::CacheGlobalData 반복적으로 데이터를 제공 된 모든 클립보드 형식입니다.사용할 수 있도록 클립보드 형식을 전달할 데이터가 포함 된 메모리에 대 한 핸들 및 선택적으로 FORMATETC 구조는 데이터를 설명 하는.

    또는

  • 직접 작업 하려는 경우 STGMEDIUM 구조를 호출 하 여 COleDataSource::CacheData 대신 COleDataSource::CacheGlobalData 위의 옵션.

9s5z33c4.collapse_all(ko-kr,VS.110).gif(지연 렌더링) 시 데이터를 제공 합니다.

이것은 고급 항목입니다.

  • 호출 COleDataSource::DelayRenderData 반복적으로 데이터를 제공 된 모든 클립보드 형식입니다.데 클립보드 형식을 전달 하 고 선택적으로 FORMATETC 데이터를 설명 하는 구조입니다.프레임 워크는 데이터를 요청 하면 호출 COleDataSource::OnRenderData을 재정의 해야 합니다.

    또는

  • 사용 하는 경우는 CFile 데이터를 제공 하는 개체를 호출 COleDataSource::DelayRenderFileData 대신 COleDataSource::DelayRenderData 이전 옵션에서.프레임 워크는 데이터를 요청 하면 호출 COleDataSource::OnRenderFileData을 재정의 해야 합니다.

데이터 개체에서 사용할 수 있는 형식을 결정합니다.

전에 응용 프로그램에 데이터를 붙여넣을 수 있도록 클립보드에는 처리할 수 있는 형식 인지 확인 해야 합니다.이렇게 하려면 응용 프로그램은 다음을 수행 해야 합니다.

  1. 만들기는 COleDataObject 개체와 FORMATETC 구조입니다.

  2. 호출 데이터 개체의 AttachClipboard 데이터가 클립보드에 데이터 개체를 연결 하는 멤버 함수입니다.

  3. 다음 작업 중 하나를 수행합니다.

    • 호출 데이터 개체의 IsDataAvailable 만 하나 또는 두 개의 서식을 설정 하는 경우 멤버 함수에 필요 합니다.여기서 응용 프로그램 보다 훨씬 많은 형식을 클립보드 데이터를 지 원하는 경우에 시간을 절약할이 됩니다.

      또는

    • 호출 데이터 개체의 BeginEnumFormats 멤버 함수는 클립보드에 사용 가능한 형식을 열거를 시작 합니다.다음 호출 GetNextFormat 클립보드에 반환 될 때까지 형식 응용 프로그램을 지원 하거나 더 이상 형식이 있습니다.

사용 하는 경우 ON_UPDATE_COMMAND_UI, 이제는 붙여넣기 및 편집 메뉴에서 붙여넣기 항목을 사용할 수 있습니다.이렇게 하려면 하나를 호출 CMenu::EnableMenuItem 또는 CCmdUI::Enable.어떤 컨테이너에 대 한 자세한 내용은 응용 프로그램 메뉴 항목과 함께 하지 고 해야 볼 때, 메뉴 및 리소스: 컨테이너 추가.

데이터 개체에서 데이터 검색

데이터 형식을 결정 한 후 나머지 부분은 모두 데이터 개체에서 데이터를 검색 합니다.이렇게 하려면 사용자의 데이터를 넣을 위치를 결정 하 고 적절 한 함수를 호출 하는 응용 프로그램입니다.데이터는 다음 미디어 중 하나를 사용할 수 있습니다.

Medium

호출할 함수

전역 메모리 (HGLOBAL)

COleDataObject::GetGlobalData

File (CFile)

COleDataObject::GetFileData

STGMEDIUM 구조 (IStorage)

COleDataObject::GetData

일반적으로 보통 함께 해당 클립보드 형식은 지정 합니다.예를 들어, 한 CF_EMBEDDEDSTRUCT 개체에는 항상는 IStorage 필요한 매체는 STGMEDIUM 구조.따라서 사용 됩니다 GetData 중 하나만 사용할 수 있는 이러한 기능 때문에 STGMEDIUM 구조입니다.

클립보드 형식에 있는 경우에는 IStream 또는 HGLOBAL 중간 프레임 워크를 제공할 수 있습니다는 CFile 데이터를 참조 하는 포인터입니다.다음은 응용 프로그램 파일에서 데이터를 가져올 수 있습니다 처럼 대부분의 데이터가 동일한 방식으로 파일 읽기를 사용할 수 있습니다.기본적으로 클라이언트 쪽 인터페이스에이 OnRenderDataOnRenderFileData 루틴을 데이터 소스에서.

문서에 데이터 삽입 다른 데이터 형식과에서 마찬가지로 이제 사용자가 할 수 있습니다.

9s5z33c4.collapse_all(ko-kr,VS.110).gif추가 정보

참고 항목

참조

COleDataObject 클래스

COleDataSource 클래스

개념

데이터 개체 및 데이터 소스 (OLE)