IShellItemImageFactory::GetImage 메서드(shobjidl_core.h)
IShellItem나타내는 HBITMAP 가져옵니다. 기본 동작은 썸네일을 로드하는 것입니다. 현재 IShellItem대한 썸네일이 없으면 항목의 아이콘에 대한 HBITMAP 검색합니다. 현재 캐시되지 않은 경우 미리 보기 또는 아이콘이 추출됩니다.
통사론
HRESULT GetImage(
[in] SIZE size,
[in] SIIGBF flags,
[out] HBITMAP *phbm
);
매개 변수
[in] size
형식: SIZE
받을 이미지의 크기를 지정하는 구조체입니다.
[in] flags
형식: siIGBF
다음 중 하나 이상:
SIIGBF_RESIZETOFIT(0x00000000)
필요에 따라 비트맵을 축소하여 가로 세로 비율을 유지합니다.
SIIGBF_BIGGERSIZEOK(0x00000001)
반환된 이미지 자체를 확장하려는 경우 호출자가 전달합니다. 예를 들어 호출자가 아이콘 크기를 80x80으로 전달하면 96x96 축소판 그림이 반환될 수 있습니다. 호출자가 이미지를 확장해야 하는 경우 이 작업을 성능 최적화로 사용할 수 있습니다. IShellItemImageFactory 셸 구현은 GDI 스트레치 블릿을 수행합니다. 호출자가 해당 메커니즘을 통해 제공되는 것보다 더 높은 품질의 이미지 스트레치를 원하는 경우 이 플래그를 전달하고 스트레치 자체를 수행해야 합니다.
SIIGBF_MEMORYONLY(0x00000002)
항목이 이미 메모리에 있는 경우에만 반환합니다. 항목이 캐시된 경우에도 디스크에 액세스하지 마세요. 이미 캐시된 아이콘만 반환하며 항목에 캐시되지 않은 인스턴스별 아이콘이 있는 경우 클래스별 아이콘으로 대체될 수 있습니다. 썸네일이 캐시되더라도 썸네일을 검색하려면 항상 디스크에 액세스해야 하므로 GetImageSIIGBF_MEMORYONLY전달하지 않고 UI 스레드에서 호출해서는 안 됩니다.
SIIGBF_ICONONLY(0x00000004)
썸네일이 아니라 아이콘만 반환합니다.
SIIGBF_THUMBNAILONLY(0x00000008)
썸네일만 반환하고 아이콘은 반환하지 않습니다. 모든 항목에 미리 보기가 있는 것은 아니므로 SIIGBF_THUMBNAILONLY 이러한 경우 메서드가 실패합니다.
SIIGBF_INCACHEONLY(0x00000010)
디스크에 대한 액세스를 허용하지만 캐시된 항목만 검색할 수 있습니다. 사용 가능한 경우 캐시된 썸네일을 반환합니다. 캐시된 썸네일을 사용할 수 없는 경우 캐시된 인스턴스별 아이콘을 반환하지만 썸네일 또는 아이콘을 추출하지는 않습니다.
SIIGBF_CROPTOSQUARE(0x00000020)
Windows 8도입되었습니다. 필요한 경우 비트맵을 사각형으로 자른다.
SIIGBF_WIDETHUMBNAILS(0x00000040)
Windows 8도입되었습니다. 비트맵을 0.7 가로 세로 비율로 늘이고 자입니다.
SIIGBF_ICONBACKGROUND(0x00000080)
Windows 8도입되었습니다. 아이콘을 반환하는 경우 연결된 앱의 등록된 배경색을 사용하여 배경을 그립니다.
SIIGBF_SCALEUP(0x00000100)
Windows 8도입되었습니다. 필요한 경우 높이와 너비가 지정된 크기에 맞도록 비트맵을 늘입니다.
[out] phbm
형식: HBITMAP*
이 메서드가 성공적으로 반환될 때 검색된 비트맵의 핸들을 받는 값에 대한 포인터입니다. 더 이상 필요하지 않은 경우 DeleteObject
반환 값
형식: HRESULT
이 메서드가 성공하면 S_OK반환됩니다. 그렇지 않으면 HRESULT 오류 코드를 반환합니다.
발언
아이콘 추출에는 시간이 오래 걸릴 수 있습니다. 일반적으로 이 메서드는 해당 스레드가 응답하지 않도록 UI 스레드에서 호출해서는 안 됩니다. SIIGBF_INCACHEONLY 플래그를 설정하는 경우 UI 스레드에서 IShellItemImageFactory::GetImage 호출할 수 있습니다. 그러나 캐시에서 이미지를 찾을 수 없는 경우 호출 애플리케이션은 이미지를 추출하기 위해 백그라운드 스레드를 시작할 준비를 해야 합니다. UI 스레드에서 추출을 수행해서는 안 됩니다.
이 메서드를 사용하는 방법에 대한 전체 예제는 Using Image Factory 샘플을 참조하세요.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | shobjidl_core.h(Shobjidl.h 포함) |