Windows 2000やXPで WIC コンポーネントが使えない件について その3
Windows 2000やXPで WIC コンポーネントが使えない件について その1
windowscodecs.dll の内部で呼び出しているはずの GUID_ContainerFormatWmp がなぜエラーになるのか調べてみた
Version | Container Format Wmp の有無 |
備考 |
6.0.6002.18005 | 無し | Vista SP2 |
7.0.6002.18107 | 有り | Vista KB971644 |
7.0.6002.23950 | 有り | Vista MS16-055 |
6.0.6001.22477 | 無し | Windows XP SP3 |
6.2.9200.22551 | 有り | Windows 7 SP1(2018/9) |
6.1.7601.24241 | 有り | Windows 7 SP1(2018/9) |
6.1.7600.16385 | 有り | Windows 7 |
にゃんということでしょう!
VISTA向けWindowsプラットフォーム更新以前のバイナリには GUID_ContainerFormatWmp が含まれていない!WDP ファイルが開けないのは当たり前だった・ω・
そこで、プログラムを以下のようにしてみた
//hr=m_pIWICFactory->CreateDecoder(GUID_ContainerFormatWmp,NULL,&pDecoder);
hr = CoCreateInstance(CLSID_WICWmpDecoder,NULL, CLSCTX_INPROC_SERVER,IID_IWICBitmapDecoder,(LPVOID*)&pDecoder); |
すると…
Windows 2000で WDPが表示できました!
つまり、Windows 2000/XP には GUID_ContainerFormatWmp が実装されていないので、CLSID_WICWmpDecoderで画像を表示しないといけないわけです
通りで、いろんなアドオンとかが対応してないわけだ (((・ω・)))
Comments