다음을 통해 공유


CIDA 구조체(shlobj_core.h)

CFSTR_SHELLIDLIST 클립보드 형식으로 포인터를 하나 이상의 Shell 네임스페이스 개체의 PIDL(항목 식별자 목록)으로 전송하는 데 사용됩니다.

구문

typedef struct _IDA {
  UINT cidl;
  UINT aoffset[1];
} CIDA, *LPIDA;

멤버

cidl

형식: UINT

부모 폴더를 포함하지 않고 전송되는 PIDL의 수입니다.

aoffset[1]

형식: UINT[1]

이 구조체의 시작 부분을 기준으로 하는 오프셋 배열입니다. 배열에는 cidl+1 요소가 포함됩니다. aoffset의 첫 번째 요소는 부모 폴더의 정규화된 PIDL에 대한 오프셋을 포함합니다. 이 PIDL이 비어 있으면 부모 폴더는 바탕 화면입니다. 배열의 나머지 각 요소는 전송할 PIDL 중 하나에 대한 오프셋을 포함합니다. 이러한 모든 PIDL은 부모 폴더의 PIDL을 기준으로 합니다.

설명

이 구조를 사용하여 특정 PIDL을 검색하려면 PIDL의 aoffset 값을 구조체의 주소에 추가합니다. 다음 두 매크로를 사용하여 구조체에서 PIDL을 검색할 수 있습니다. 첫 번째는 부모 폴더의 PIDL을 검색합니다. 두 번째는 0부터 시작하는 인덱스로 지정된 PIDL을 검색합니다.

#define HIDA_GetPIDLFolder(pida) (LPCITEMIDLIST)(((LPBYTE)pida)+(pida)->aoffset[0])
#define HIDA_GetPIDLItem(pida, i) (LPCITEMIDLIST)(((LPBYTE)pida)+(pida)->aoffset[i+1])

이러한 매크로에서 반환되는 값은 ITEMIDLIST 구조체에 대한 포인터입니다. 이러한 구조체의 길이는 다양하므로 구문 분석하여 구조체의 끝을 결정해야 합니다. PIDL 및 ITEMIDLIST 구조에 대한 자세한 내용은 NameSpace를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
머리글 shlobj_core.h(Shlobj.h 포함)