bool GetEncoderClassID(const wchar_t *format, CLSID *pClsid)
{
UINT n, size;
ImageCodecInfo *codecInfos;
GetImageEncodersSize(&n, &size);
codecInfos = (ImageCodecInfo *)malloc(size);
GetImageEncoders(n, size, codecInfos);
for (UINT i = 0; i < n; i++) {
if (wcscmp(codecInfos[i].FormatDescription, format) == 0) {
*pClsid = codecInfos[i].Clsid;
free(codecInfos);
return true;
}
}
free(codecInfos);
return false;
}