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 매크로를 사용하여 riid 및 ppv 매개 변수를 패키지하는 것이 좋습니다. 이 매크로는 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에 도입됨) |