{"id":111348,"date":"2025-07-04T07:00:00","date_gmt":"2025-07-04T14:00:00","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/oldnewthing\/?p=111348"},"modified":"2025-07-04T08:41:21","modified_gmt":"2025-07-04T15:41:21","slug":"20250704-00","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/oldnewthing\/20250704-00\/?p=111348","title":{"rendered":"Why doesn&#8217;t <CODE>LVIF_<WBR>INDENT<\/CODE> work without an image list?"},"content":{"rendered":"<p>The <code>LVIF_<wbr \/>INDENT<\/code> property of the Win32 classic listview control lets you indent an item in report view. The units of indentation are the size of the image list. But that requires an image list. Why does it require an image list?<\/p>\n<p>The indentation feature of the classic listview control was added for Internet Mail and News, a mail and newsreader program that came with Internet Explorer 3.\u00b9 The indentation was used to represent message threading. Since the indentation was intended to represent reply depth, it was not unreasonable for the listview&#8217;s representation of the indentation to match the underlying data&#8217;s indentation. And since each item had an icon (representing read or unread), the width of the icon was a natural unit of indentation.<\/p>\n<p>But what if you don&#8217;t want an image list?<\/p>\n<p>The indentation demands an image list, but you can provide a 1 \u00d7 1 image list, and choose not to show any images. The space will still be reserved, so there will be a 1 pixel gap, but maybe this small glitch isn&#8217;t noticeable. The indentation would then be in units of pixels.<\/p>\n<p>Not great, but it might be the best you can do.<\/p>\n<p>\u00b9 Internet Mail and News was <a title=\"What was the relationship between Outlook and Outlook Express?\" href=\"https:\/\/devblogs.microsoft.com\/oldnewthing\/20150331-00\/?p=44343\"> subsequently rebranded as Outlook Express<\/a>, a rebranding which created confusion and unmet expectations.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Its original client had an image list.<\/p>\n","protected":false},"author":1069,"featured_media":111744,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[25],"class_list":["post-111348","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oldnewthing","tag-code"],"acf":[],"blog_post_summary":"<p>Its original client had an image list.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/111348","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/users\/1069"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/comments?post=111348"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/111348\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media\/111744"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media?parent=111348"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/categories?post=111348"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/tags?post=111348"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}