다음을 통해 공유


SHCreateShellItemArrayFromDataObject 함수(shobjidl_core.h)

데이터 개체에서 Shell 항목 배열 개체를 만듭니다.

구문

SHSTDAPI SHCreateShellItemArrayFromDataObject(
  [in]  IDataObject *pdo,
  [in]  REFIID      riid,
  [out] void        **ppv
);

매개 변수

[in] pdo

형식: IDataObject*

IDataObject 인터페이스에 대한 포인터입니다.

[in] riid

형식: REFIID

원하는 인터페이스 ID에 대한 참조입니다.

[out] ppv

형식: void**

이 메서드가 반환되면 riid에서 요청된 인터페이스 포인터가 포함됩니다. 일반적으로 IShellItemArray입니다.

반환 값

형식: HRESULT

이 함수가 성공하면 S_OK 반환합니다. 그러지 않으면 HRESULT 오류 코드를 반환합니다.

설명

이 함수는 IShellExtInit 를 구현하고 데이터 개체를 IShellExtInit::Initialize 메서드에 전달하는 셸 확장에 유용합니다. 예를 들어 상황에 맞는 메뉴 처리기가 있습니다.

이 API를 사용하면 데이터 개체를 처리기에서 사용할 수 있는 Shell 항목으로 변환할 수 있습니다. 처리기는 CF_HDROP 및CFSTR_SHELLIDLIST(HIDA라고도 함)와 같은 클립보드 형식이 아닌 셸 항목 배열을 사용하는 것이 좋습니다. 이 배열은 코드가 더 간단하고 성능이 향상될 수 있습니다.

결과 셸 항목 배열은 원본 데이터 개체에 대한 참조를 보유합니다. 따라서 해당 데이터 개체는 셸 항목 배열의 수명 동안 유효한 상태를 유지해야 합니다. 특히 IDropTarget 메서드에 전달된 데이터 개체는 삭제 작업이 완료된 후 더 이상 유효하지 않습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 shobjidl_core.h(Shobjidl.h 포함)
DLL Shell32.dll
API 세트 ext-ms-win-shell-shell32-l1-2-2(Windows 10 버전 10.0.14393에 도입됨)