ITEMIDLIST 구조체(shtypes.h)
항목 식별자 목록을 포함합니다.
구문
typedef struct _ITEMIDLIST {
SHITEMID mkid;
} ITEMIDLIST;
멤버
mkid
형식: SHITEMID
항목 식별자 목록입니다.
설명
PIDL이라고 하는 이 구조체에 대한 포인터는 셸 네임스페이스의 개체를 식별하는 데 사용됩니다. PIDL(항목 식별자 목록) 및 항목 식별자에 대한 포인터에 대한 자세한 내용은 셸 네임스페이스 소개를 참조하세요.
ITEMIDLIST Strict 형식
Windows Vista를 기준으로 여러 형태의 ITEMIDLIST 를 데이터 형식으로 사용할 수 있습니다. 세 가지 기본 유형은 다음과 같습니다.- IDLIST_ABSOLUTE: 네임스페이스의 루트를 기준으로 정규화된 ITEMIDLIST 입니다. 다중 수준일 수 있습니다.
- IDLIST_RELATIVE: 부모 폴더를 기준으로 하는 ITEMIDLIST 입니다. 다중 수준일 수 있습니다.
- ITEMID_CHILD: 부모 폴더를 기준으로 하는 단일 수준 ITEMIDLIST 입니다. 정확히 하나의 SHITEMID 구조체가 포함되어 있습니다.
#define STRICT_TYPED_ITEMIDS // Better type safety for IDLists
#include <shlobj.h> // Typical Shell header file
이러한 각 형식의 의미는 다음 한정자 중 하나 이상으로 변경할 수 있습니다.
- P: 형식이 포인터입니다.
- C: 형식이 상수입니다.
- U: 형식이 정렬되지 않았습니다. 32비트 아키텍처의 DWORD 경계와 64비트 아키텍처의 QWORD 경계에 맞춥니다.
- PIDLIST_ABSOLUTE: ITEMIDLIST 는 절대 항목이며 비 상수로 표시된 대로 할당되었습니다. 즉, 더 이상 필요하지 않은 경우 ILFree 로 할당을 취소해야 합니다. 할당된 메모리에 대한 직접 포인터이므로 정렬됩니다.
- PCIDLIST_ABSOLUTE: ITEMIDLIST 는 절대적이고 상수입니다. 이는 일반적으로 절대 ITEMIDLIST 를 매개 변수로 전달하지만 소유하지 않는 경우에 사용되므로 변경할 수 없습니다.
- PCUIDLIST_ABSOLUTE: ITEMIDLIST 는 절대적이고 상수이며 정렬되지 않습니다. 이는 거의 사용되지 않습니다. 절대 ITEMIDLIST 는 일반적으로 32비트 아키텍처의 DWORD 경계와 64비트 아키텍처의 QWORD 경계에 맞춰 메모리에 할당됩니다. 절대 ITEMIDLIST 는 serialization 형식과 같은 다른 데이터와 함께 바이트로 압축된 경우에만 정렬되지 않습니다.
- PITEMID_CHILD: ITEMIDLIST는 IEnumIDList::Next의 결과와 같이 부모 폴더를 기준으로 할당된 자식 ITEMIDLIST입니다. 정확히 하나의 SHITEMID 구조체가 포함되어 있습니다.
- PCUITEMID_CHILD: 자식 ITEMIDLIST 는 상대, 상수 및 정렬되지 않았습니다. 이는 종종 기존 PIDL의 일부에 대한 포인터를 가져올 때 발생합니다. 예를 들어 절대 PIDL이 있고 ILFindLastID를 호출하는 경우 목록의 마지막 자식 SHITEMID 에 대한 포인터를 반환합니다. 바이트로 압축된 PIDL은 개별 SHITEMID 구조체가 바이트 경계에 속하는 것을 보장하지 않으므로 정렬되지 않습니다. 이러한 자식 PIDL에 대한 참조는 메모리가 절대 PIDL에서 소유하기 때문에 항상 상수입니다.
- PCITEMID_CHILD: 자식 ITEMIDLIST 가 상수이고 정렬됩니다. 이는 자식 PIDL로서 일반적으로 더 큰 PIDL의 일부이므로 바이트 경계에 정렬되지 않기 때문에 거의 사용되지 않습니다.
- PUITEMID_CHILD: 자식 ITEMIDLIST 가 정렬되지 않았습니다. 이 ITEMIDLIST 에 대한 메모리는 절대인 부모 PIDL이 소유하기 때문에 거의 사용되지 않습니다. 즉, 부모 PIDL만 수정할 수 있으므로 자식 PIDL은 일정해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
머리글 | shtypes.h |