Re: Minutes: Foreign OSes BoF



>  >  * There is no way that I know of to distinguish between a
>  >  metafile/vector format and a raster format, except maybe to try
>  >  loading everything as a metafile and see if something fails.
>
>  Hmm, there are the ImageCodecFlagsSupportBitmap and
>  ImageCodecFlagsSupportVector bits in the ImageCodecInfo::Flags field,
>  is that enough?

I've seen stories that GDI+ reports that every format is a bitmap. I
didn't have the opportunity to test it myself because
GetImageEncoders() isn't in my GDI+ DLL.

>  >  * The functions that enumerate GDI+'s loaders simply don't exist in
>  >  the 1.0 version of the GDI+ DLL.
>
>  Are you sure? The sample program from the GDI+ documentation in the
>  Platform SDK that lists encoders using GetImageDecodersSize() and
>  GetImageDecoders() works fine for me on XP. The version of the
>  GdiPlus.dlls I find in the WinSxS folders is 5.1.3102.2180.

Unfortunately, they're not present in at least my copy of WinXP. It's
why I do a TRY_LOOKUP() on GetImageEncoders and GetImageEncodersSize,
and why GetEncoderClsid() has a fallback branch that uses hard-coded
CLSIDs.

>  I really would love to be able to have the GDI+ loader as a built-in...

As would I. You can definitely do it with the existing architecture,
albeit a little awkwardly. The combination wouldn't have support for
any new formats dynamically added to GDI+. But in all honesty, I think
adding new formats is pretty uncommon and that 99% of people just have
the builtin set.

Thanks for working on this patch, Tor. I really appreciate it.

Dom


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]