I don't think our IAVIStream implementation handles this case correctly either, there are some hardcoded corrections to the BITMAPINFOHEADER for other formats in that code though, so I think we need to add another special case for MS Video 1 that corrects a biBitCount of 24 to 16, and then I think we can just rip out this AVI reader in comctl32 and replace it with IAVIStream. Since IAVIStream has special cases that are just not handled in the comctl32 AVI reader, doing that should also help with correctness.
In any case doing what I did here is not correct, because the biCompression member of the BITMAPINFOHEADER is also not correct, so ICGetDisplayFormat opens an entirely different decoder and probably fails decoding later.