다음을 통해 공유


IShellItemArray::GetAttributes 메서드(shobjidl_core.h)

IShellItemArray에 포함된 항목 집합의 특성을 가져옵니다. 배열에 둘 이상의 항목이 포함된 경우 이 메서드에서 검색한 특성은 단일 항목의 특성이 아니라 모든 항목의 요청된 모든 특성의 논리적 조합입니다.

구문

HRESULT GetAttributes(
  [in]  SIATTRIBFLAGS AttribFlags,
  [in]  SFGAOF        sfgaoMask,
  [out] SFGAOF        *psfgaoAttribs
);

매개 변수

[in] AttribFlags

형식: SIATTRIBFLAGS

배열에 단일 항목이 포함된 경우 이 메서드는 GetAttributes와 동일한 결과를 제공합니다. 그러나 배열에 여러 항목이 포함된 경우 모든 항목의 특성 집합이 단일 특성 집합으로 결합되고 psfgaoAttribs가 가리키는 값에 반환됩니다. 이 매개 변수는 다음 값 중 하나를 사용하여 최종 특성 집합이 결정되는 방법을 정의합니다.

SIATTRIBFLAGS_AND(0x00000001)

0x00000001. 배열에 여러 항목이 있는 경우 비트 AND를 사용하여 항목 간에 특성을 결합합니다. instance 경우 배열에 하나의 항목을 이동할 수 있는 두 개의 항목(SFGAO_CANMOVE)과 두 번째 항목을 사용할 수 없는 경우 메서드는 해당 특성 비트에 대해 (1 & 0) 또는 0을 반환합니다.

SIATTRIBFLAGS_OR(0x00000002)

0x00000002. 배열에 여러 항목이 있는 경우 비트 OR을 사용하여 항목 간에 특성을 결합합니다. instance 경우 배열에 하나의 항목을 이동할 수 있는 두 개의 항목(SFGAO_CANMOVE)과 두 번째 항목을 사용할 수 없는 경우 메서드는 해당 특성 비트에 대해 (1 | 0) 또는 1을 반환합니다.

SIATTRIBFLAGS_APPCOMPAT(0x00000003)

0x00000003. Shell 데이터 원본에서 직접 특성을 검색합니다. 이 값을 사용하려면 셸 항목 배열이 자식 PIDL 배열로 지정된 내용이 있는 IShellFolder 로 초기화되어야 합니다.

SIATTRIBFLAGS_MASK(0x00000003)

0x00000003. SIATTRIBFLAGS_AND, SIATTRIBFLAGS_OR 및 SIATTRIBFLAGS_APPCOMPAT 마스크입니다. 호출자는 일반적으로 이 값을 사용하지 않습니다.

SIATTRIBFLAGS_ALLITEMS(0x00004000)

0x00004000. Windows 7 이상. 배열의 모든 항목을 검사하여 특성을 계산합니다. 이로 인해 큰 배열의 성능이 저하될 수 있으므로 필요한 경우에만 사용해야 합니다. 이 플래그를 전달하는 경우는 극히 드뭅니다. 자세한 내용은 설명을 참조하세요.

[in] sfgaoMask

형식: SFGAOF

요청되는 특정 특성을 지정하는 마스크입니다. 하나 이상의 SFGAO 값에 대한 비트 OR입니다.

[out] psfgaoAttribs

형식: SFGAOF*

이 메서드가 성공적으로 반환될 때 요청된 특성의 값을 포함하는 비트맵입니다.

반환 값

형식: HRESULT

반환된 특성이 sfgaoMask에서 요청된 특성과 정확히 일치하는지, S_FALSE 특성이 정확히 일치하지 않는지 또는 표준 COM 오류 값과 정확히 일치하는지 S_OK 반환합니다.

설명

Shell 항목 배열은 개별 특성이 결정된 후 캐시합니다.

이 메서드는 배열 수집 특성 정보를 통과하므로 해당 값이 돌이킬 수 없이 설정된 후 일반적으로 특정 특성의 검색을 중지합니다. instance 경우 SIATTRIBFLAGS_AND 플래그가 설정된 경우 특성이 항목에 설정되지 않은 경우(값 0) AND 작업의 결과가 항상 0이므로 다른 항목에서 해당 특성 값을 계속 검사할 필요가 없습니다. 따라서 특성의 최종 집합은 일반적으로 배열에서 처음 몇 개의 항목만 확인하여 계산되며, 이는 최종 값을 가져오는 데 필요한 모든 항목입니다. 배열의 모든 항목을 검사해야 하는 경우 SIATTRIBFLAGS_ALLITEMS 플래그를 설정합니다. 그러나 이렇게 하면 메서드의 반환 속도가 상당히 느려질 수 있으므로 원인 없이 수행하지 마세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 shobjidl_core.h(Shobjidl.h 포함)