IDataObject::GetDataHere 메서드(objidl.h)
원본 데이터 개체에서 데이터를 가져오기 위해 데이터 소비자가 호출합니다. 이 메서드는 호출자가 지정된 스토리지 매체를 할당하고 해제해야 한다는 점에서 GetData 메서드와 다릅니다.
구문
HRESULT GetDataHere(
[in] FORMATETC *pformatetc,
[in, out] STGMEDIUM *pmedium
);
매개 변수
[in] pformatetc
데이터를 전달할 때 사용할 형식, 중간 및 대상 디바이스를 정의하는 FORMATETC 구조체에 대한 포인터입니다. 하나의 매체만 tymed로 지정할 수 있으며 TYMED_ISTORAGE, TYMED_ISTREAM, TYMED_HGLOBAL 또는 TYMED_FILE 값만 유효합니다.
[in, out] pmedium
전송되는 데이터를 포함하는 스토리지 매체를 정의하는 STGMEDIUM 구조체에 대한 포인터입니다. 매체는 호출자가 할당하고 GetDataHere로 채워야 합니다. 또는 호출자가 미디어를 해제해야 합니다. 이 메서드의 구현은 항상 이 매개 변수가 가리키는 STGMEDIUM 구조체의 punkForRelease 멤버에 대해 NULL 값을 제공해야 합니다.
반환 값
이 메서드는 성공에 대한 S_OK 반환합니다. 다른 가능한 값은 다음과 같습니다.
반환 코드 | 설명 |
---|---|
|
lindex의 값이 잘못되었습니다. 현재 -1만 지원됩니다. |
|
pformatetc의 값이 잘못되었습니다. |
|
tymed 값이 잘못되었습니다. |
|
dwAspect 값이 잘못되었습니다. |
|
개체 애플리케이션이 실행되고 있지 않습니다. |
|
매체를 할당할 때 오류가 발생했습니다. |
|
예기치 않은 오류가 발생했습니다. |
|
dwDirection 매개 변수가 잘못되었습니다. |
|
이 작업에 사용할 수 있는 메모리가 부족했습니다. |
설명
GetDataHere 메서드는 호출자가 pmedium에 지정된 매체를 할당하고 해제해야 한다는 점을 제외하고 IDataObject::GetData와 비슷합니다. GetDataHere 는 FORMATETC 구조에 설명된 데이터를 렌더링하고 호출자가 제공한 STGMEDIUM 구조체에 데이터를 복사합니다. 예를 들어 매체가 TYMED_HGLOBAL 경우 이 메서드는 매체의 크기를 조정하거나 새 hGlobal을 할당할 수 없습니다.
일부 미디어는 메타파일과 같은 GDI 형식을 포함하여 GetDataHere 호출에 적합하지 않습니다. GetDataHere 메서드는 호출자가 제공한 메타파일로 데이터를 넣을 수 없습니다. 일반적으로 이 메서드에서 지원하는 데 필요한 유일한 스토리지 미디어는 TYMED_ISTORAGE, TYMED_ISTREAM 및 TYMED_FILE.
전송 매체가 스트림인 경우 OLE는 데이터가 반환되는 위치와 스트림의 검색 포인터 위치를 가정합니다. GetData 호출에서 반환된 데이터는 스트림 위치 0부터 스트림의 현재 검색 포인터(즉, 종료 시 위치) 직전까지입니다. GetDataHere의 경우 반환된 데이터는 입력 시 스트림 위치에서 종료 위치 바로 앞까지입니다.
요구 사항
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | objidl.h |