다음을 통해 공유


IDataObject::SetData 메서드(objidl.h)

이 메서드를 구현하는 개체로 데이터를 전송하기 위해 데이터 원본이 포함된 개체에서 호출됩니다.

구문

HRESULT SetData(
  [in] FORMATETC *pformatetc,
  [in] STGMEDIUM *pmedium,
  [in] BOOL      fRelease
);

매개 변수

[in] pformatetc

스토리지 매체에 포함된 데이터를 해석할 때 데이터 개체에서 사용하는 형식을 정의하는 FORMATETC 구조체에 대한 포인터입니다.

[in] pmedium

데이터가 전달되는 스토리지 매체를 정의하는 STGMEDIUM 구조체에 대한 포인터입니다.

[in] fRelease

TRUE이면 SetData를 구현하는 라는 데이터 개체가 호출이 반환된 후 스토리지 매체를 소유합니다. 즉 , ReleaseStgMedium 함수를 호출하여 사용한 후 매체를 해제해야 합니다. FALSE이면 호출자는 스토리지 매체의 소유권을 유지하고 호출된 데이터 개체는 호출 기간 동안에만 스토리지 매체를 사용합니다.

반환 값

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

반환 코드 설명
DV_E_LINDEX
lindex의 값이 잘못되었습니다. 현재 -1만 지원됩니다.
DV_E_FORMATETC
pformatetc 값이 잘못되었습니다.
DV_E_TYMED
tymed 값이 잘못되었습니다.
DV_E_DVASPECT
dwAspect 값이 잘못되었습니다.
OLE_E_NOTRUNNING
개체 애플리케이션이 실행되고 있지 않습니다.
E_FAIL
작업이 실패했습니다.
E_UNEXPECTED
예기치 않은 오류가 발생했습니다.
E_INVALIDARG
dwDirection 값이 잘못되었습니다.
E_OUTOFMEMORY
이 작업에 사용할 수 있는 메모리가 부족했습니다.

설명

SetData 를 사용하면 다른 개체가 구현되는 데이터 개체로 데이터를 보내려고 시도할 수 있습니다. 데이터 개체는 다른 개체에서 데이터 수신을 지원하는 경우 이 메서드를 구현합니다. 이를 지원하지 않는 경우 E_NOTIMPL 반환하도록 구현해야 합니다.

호출자는 데이터가 전달되는 pmedium 매개 변수로 표시된 스토리지 매체를 할당합니다. 호출된 데이터 개체는 성공적으로 수신되고 오류 코드가 반환되지 않을 때까지 데이터의 소유권을 가져오지 않습니다. fRelease 매개 변수의 값은 호출이 반환된 후 매체의 소유권을 나타냅니다. FALSE 는 호출자가 여전히 매체를 소유하고 있으며 데이터 개체가 호출 중에만 사용됨을 나타냅니다. TRUE 는 이제 데이터 개체가 소유하고 있으며 더 이상 필요하지 않은 경우 해제해야 했음을 나타냅니다.

pformatetcpmedium 매개 변수에 지정된 매체의 형식은 동일해야 합니다. 예를 들어 하나는 전역 핸들이고 다른 하나는 스트림일 수 없습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 objidl.h

추가 정보

Idataobject