다음을 통해 공유


SHCreateDataObject 함수(shlobj_core.h)

부모 폴더에 데이터 개체를 만듭니다.

구문

SHSTDAPI SHCreateDataObject(
  [in, optional] PCIDLIST_ABSOLUTE     pidlFolder,
  [in]           UINT                  cidl,
  [in, optional] PCUITEMID_CHILD_ARRAY apidl,
  [in, optional] IDataObject           *pdtInner,
  [in]           REFIID                riid,
  [out]          void                  **ppv
);

매개 변수

[in, optional] pidlFolder

형식: PCIDLIST_ABSOLUTE

데이터 개체를 포함하는 부모 폴더의 PIDL( ITEMIDLIST )에 대한 포인터입니다.

[in] cidl

형식: UINT

apidl 매개 변수에 지정된 파일 개체 또는 하위 폴더의 수입니다.

[in, optional] apidl

형식: PCUITEMID_CHILD_ARRAY

상수 ITEMIDLIST 구조에 대한 포인터 배열로, 각각 부모 폴더를 기준으로 파일 개체 또는 하위 폴더를 고유하게 식별합니다. 각 항목 식별자 목록에는 정확히 하나의 SHITEMID 구조와 종료 0이 포함되어야 합니다.

[in, optional] pdtInner

형식: IDataObject*

인터페이스 IDataObject에 대한 포인터입니다. 이 매개 변수는 NULL일 수 있습니다. 만든 데이터 개체가 생성 시 할당된 기본 형식 이외의 추가 FORMATETC 클립보드 형식을 지원해야 하는 경우에만 pdtInner를 지정합니다. 또는 메서드 IDataObject::SetData를 호출하고 pFormatetc 매개 변수에 전달된 FORMATETC 구조에서 형식을 지정하여 기본이 아닌 클립보드 형식을 사용하여 만든 데이터 개체를 채우는 지원을 제공합니다.

[in] riid

형식: REFIID

ppv를 통해 검색할 인터페이스의 IID에 대한 참조입니다. IID_IDataObject 합니다.

[out] ppv

형식: void**

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

반환 값

형식: HRESULT

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

설명

이 함수는 일반적으로 IShellFolder::GetUIObjectOf 메서드를 구현할 때 호출됩니다. 인터페이스 ID IID_IDataObject 인터페이스 포인터가 요청되면(매개 변수 riid 사용) 구현자는 응답으로 SHCreateDataObject 를 사용하여 만든 개체에 대한 인터페이스 포인터를 반환할 수 있습니다.

이 함수는 CFSTR_SHELLIDLIST (HIDA라고도 함) 클립보드 형식을 지원하며 IDataObject::SetData를 통해 임의의 클립보드 형식을 일반적으로 지원합니다. 클립보드 형식에 대한 자세한 내용은 셸 클립보드 형식을 참조하세요.

새 데이터 개체는 데이터가 지정된 형식으로 클립보드에 저장되는 끌어서 놓기와 같은 작업에 사용됩니다.

Objbase.h에 정의된 IID_PPV_ARGS 매크로를 사용하여 riidppv 매개 변수를 패키지하는 것이 좋습니다. 이 매크로는 ppv의 값이 가리키는 인터페이스를 기반으로 올바른 IID를 제공하므로 riid 에서 코딩 오류가 발생하여 예기치 않은 결과가 발생할 수 있습니다.

요구 사항

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

추가 정보

CIDLData_CreateFromIDArray