INamespaceWalk::GetIDArrayResult 메서드(shobjidl_core.h)
INamespaceWalk::Walk에서 시작한 네임스페이스 연습 중에 찾은 개체 목록을 가져옵니다.
구문
HRESULT GetIDArrayResult(
[out] UINT *pcItems,
[out] PIDLIST_ABSOLUTE **prgpidl
);
매개 변수
[out] pcItems
형식: UINT*
pppidl에 저장된 항목 수
[out] prgpidl
형식: LPITEMIDLIST**
네임스페이스 연습 중에 찾은 항목을 나타내는 PIDL 배열에 대한 포인터의 주소입니다.
반환 값
형식: HRESULT
메서드가 성공하면 S_OK를 반환하고, 그러지 않으면 HRESULT 오류 코드를 반환합니다.
설명
INamespaceWalk::GetIDArrayResult를 사용하려면 INamespaceWalk::Walk 호출에서 NSWF_DONT_ACCUMULATE_RESULT 지정할 수 없습니다.
이 배열을 해제하는 것은 호출 애플리케이션의 책임입니다. 각 PIDL에 대해 CoTaskMemFree 를 호출하고 배열 자체에 대해 한 번 호출합니다.
예제
다음 예제에서는 INamespaceWalk instance 만들고, 바탕 화면에서 워크를 시작하고, 데스크톱 폴더와 해당 직계 자식만 걷고, 워크에서 검색된 PIDL을 검색하고, 배열을 해제합니다.
void NamespaceWalk_Example()
{
// Note that error checking has been omitted for clarity.
INamespaceWalk *pnsw = NULL;
IShellFolder *psfDesktop = NULL;
// Get a pointer to the desktop to use as our root node
hr = SHGetDesktopFolder(&psfDesktop);
// Create the INamespaceWalk instance
hr = CoCreateInstance(CLSID_NamespaceWalker,
NULL,
CLSCTX_INPROC,
IID_INamespaceWalk,
(void **)&pnsw);
// Walk the desktop folder and one level of subfolders
hr = pnsw->Walk(psfDesktop, NSWF_NONE_IMPLIES_ALL, 1, NULL);
UINT cItems;
PIDLIST_ABSOLUTE *ppidls;
// Retrieve the array of PIDLs gathered in the walk
hr = pnsw->GetIDArrayResult(&cItems, &ppidls);
// Perform some action using the PIDLs
// The calling function is responsible for freeing the PIDL array
FreeIDListArrayFull(ppidls, cItems);
return;
}
void FreeIDListArrayFull(PIDLIST_ABSOLUTE *ppidls, UINT cItems)
{
// Free the array elements
for (UINT i = 0; i < cItems; i++)
{
CoTaskMemFree(ppidls[i]);
}
// Free the array itself
CoTaskMemFree(ppidls);
return;
}
요구 사항
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | shobjidl_core.h(Shobjidl.h 포함) |
라이브러리 | Shell32.lib |
DLL | Shell32.dll(버전 6.0 이상) |
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기