According to MSDN, GetPreview isn't supported on any decoder except WMPhoto, and if that's true it should probably be returning WINCODEC_ERR_UNSUPPORTEDOPERATION.
And why bother with GetThumbnail if you're not going to do it properly? At least check whether a thumbnail exists in the image before returning something.