다음을 통해 공유


IExtractImage::GetLocation 메서드(shobjidl_core.h)

추출할 이미지의 경로를 가져옵니다.

구문

HRESULT GetLocation(
  [out]     LPWSTR     pszPathBuffer,
  [in]      DWORD      cch,
  [out]     DWORD      *pdwPriority,
  [in]      const SIZE *prgSize,
  [in]      DWORD      dwRecClrDepth,
  [in, out] DWORD      *pdwFlags
);

매개 변수

[out] pszPathBuffer

형식: LPWSTR

경로 설명을 반환하는 데 사용되는 버퍼입니다. 이 값은 동일한 이미지를 두 번 이상 로드하지 않도록 이미지를 식별합니다.

[in] cch

형식:DWORD

pszPathBuffer의 크기(문자)입니다.

[out] pdwPriority

형식: DWORD*

사용되지 않습니다.

Microsoft Windows XP 이하:pdwFlags에서 IEIFLAG_ASYNC 플래그를 설정할 때 항목의 우선 순위를 반환하는 데 사용되는 포인터입니다. 이 매개 변수는 NULL이 아니어야 합니다. 이 매개 변수가 NULL이면 IEIFLAG_ASYNC 플래그가 설정되었는지 여부에 관계없이 함수가 실패합니다.

이 매개 변수는 일반적으로 이미지를 추출하는 데 필요한 시간을 나타내는 데 사용됩니다. 미리 보기가 추출되는 순서를 더 자세히 제어하려면 최대 32비트까지 여러 우선 순위 수준을 정의할 수 있습니다. 다른 우선 순위 수준에 할당된 정수 값이 낮은 우선 순위에서 높은 우선 순위로 증가하는 한 사용하는 실제 숫자는 중요하지 않습니다. 이미지를 추출할 순서를 결정하는 데만 사용됩니다. 세 가지 표준 우선 순위 수준이 있습니다.

IEI_PRIORITY_MAX

최대 우선 순위입니다.

IEI_PRIORITY_MIN

최소 우선 순위입니다.

IEIT_PRIORITY_NORMAL

정상 우선 순위입니다.

Microsoft Windows XP. 사용되지 않습니다.

[in] prgSize

형식: const SIZE*

이미지의 원하는 너비와 높이가 있는 SIZE 구조체에 대한 포인터입니다. NULL이 아니어야 합니다.

[in] dwRecClrDepth

형식:DWORD

픽셀당 비트 단위로 권장되는 색 깊이입니다. NULL이 아니어야 합니다.

[in, out] pdwFlags

형식: DWORD*

이미지를 처리하는 방법을 지정하는 플래그입니다. 값은 다음 중 하나 이상이어야 합니다.

IEIFLAG_ASPECT

개체에 제공된 가로 세로 비율을 사용하도록 요청하는 데 사용됩니다. 이 플래그를 설정하면 원하는 가로 세로 비율이 있는 사각형이 prgSize로 전달됩니다. 이 플래그는 IEIFLAG_SCREEN 사용할 수 없습니다.

IEIFLAG_ASYNC

사용되지 않습니다. 미리 보기는 항상 백그라운드 스레드에서 추출됩니다.

Microsoft Windows XP 및 이전 버전. 이 instance 비동기(자유 스레드) 추출을 지원하는지 묻는 데 사용됩니다. 호출 애플리케이션에서 이 플래그를 설정하는 경우 IExtractImage::GetLocation 은 다른 스레드에서 이미지를 추출하기 위해 호출 애플리케이션에 나타내는 E_PENDING 반환할 수 있습니다. E_PENDING 반환되면 항목의 우선 순위가 pdwPriority로 반환됩니다.

IEIFLAG_CACHE

지원되지 않습니다.

Windows XP 및 이전 버전: 이미지를 캐시하지 않음을 나타내기 위해 개체에 의해 설정됩니다. 이 플래그가 반환되면 셸은 이미지의 복사본을 캐시합니다.

IEIFLAG_GLEAM

지원되지 않습니다.

IEIFLAG_NOBORDER(0x0100)

지원되지 않습니다.

IEIFLAG_NOSTAMP(0x0080)

지원되지 않습니다.

IEIFLAG_OFFLINE

렌더링에 로컬 콘텐츠만 사용하도록 개체에 지시하는 데 사용됩니다.

IEIFLAG_ORIGSIZE

버전 5.0. prgSize에 전달된 대략적 크기로 이미지를 렌더링하도록 개체에 지시하지만 필요한 경우 자르는 데 사용됩니다.

IEIFLAG_QUALITY(0x0200)

더 높은 품질의 이미지가 요청되었음을 나타내기 위해 IExtractImage::Extract 메서드에 전달됩니다.

이 플래그가 설정되지 않은 경우 IExtractImage 는 사용자가 요청하는 크기에 관계없이 파일에 썸네일이 있으면 포함된 썸네일을 검색합니다. 예를 들어 파일이 2000x2000픽셀이지만 포함된 축소판 그림이 100x100픽셀에 불과하고 사용자가 이 플래그를 설정하지 않은 경우 1000x1000 픽셀 썸네일을 요청하는 경우 IExtractImage 는 항상 100x100 픽셀 축소판 그림을 반환합니다. IExtractImage가 확장되지 않으므로 이는 의도적으로 수행됩니다. 더 큰 축소판 그림이 필요한 경우(일반적으로 포함된 미리 보기는 160x160) 이 플래그를 설정해야 합니다.

IEIFLAG_REFRESH(0x0400)

항목의 바로 가기 메뉴에 미리 보기 새로 고침 이 표시되어야 함을 나타내기 위해 개체에서 반환됩니다.

IEIFLAG_SCREEN

화면처럼 렌더링하도록 개체에 지시하는 데 사용됩니다. 이 플래그는 IEIFLAG_ASPECT 사용할 수 없습니다.

반환 값

형식: HRESULT

이 메서드는 COM 정의 오류 코드 또는 다음 중 하나를 반환할 수 있습니다.

반환 코드 Description
S_OK
Success
E_PENDING
Windows XP 및 이전 버전:IEIFLAG_ASYNC 플래그가 설정된 경우 이 반환 값은 개체가 자유 스레드임을 Shell에 나타내는 데 사용됩니다.

설명

Microsoft Windows XP 이하: 이 메서드는 이미지의 경로를 반환하고 이미지를 렌더링하는 방법을 지정합니다. IExtractImage::GetLocation 은 자유 스레드입니다. 즉, MTA(다중 스레드 아파트 모델)를 지원하므로 백그라운드 스레드에 배치할 수 있습니다. 호출 애플리케이션이 필요에 따라 추출 프로세스를 시작하고 중지할 수 있도록 개체는 IRunnableTask 인터페이스도 노출해야 합니다.

prgSize에서 정의한 경계 내에 맞는 이미지를 반환해야 합니다. Windows 2000 이상 시스템을 사용하면 표준 가로 세로 비율이 없는 개체를 사용하도록 IEIFLAG_ORIGSIZE 설정할 수 있으며 제대로 표시됩니다. 사각형의 사용되지 않는 부분을 채울 필요가 없습니다. 이전 버전의 Shell에서 비표준 가로 세로 비율 이미지를 사용하려고 하면 prgSize 사각형에 맞게 확장됩니다. 가로 세로 비율이 지정된 것과 얼마나 다른지에 따라 이미지가 심하게 왜곡될 수 있습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional, Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 shobjidl_core.h(Shobjidl.h 포함)
DLL Shell32.dll(버전 4.70 이상)