Andreas - I finally got a chance to look at this in detail; I don't know what I was thinking that night I wrote the previous post :confused: , but almost everything I said in it is wrong. The problem actually does reside in cedocida, and it's in the DLL, not the .inf. But the real culprit is Microsoft, with their ambiguous documentation. You programmed ICM_GETINFO handler the same way I would have, the "safe" way, assuming the worst - that they were giving you a pointer to a memory area which might be filled with garbage. So you cleared it all to zero, and then filled in every field except "szDriver", just as the documentation instructs. But, apparently, when Microsoft said "The driver should fill all members of the ICINFO structure except szDriver" they really should have said "The driver should fill all members of the ICINFO structure and but not touch szDriver. As you can see by the breakpoint I've set on your app, the pointer supplied points to a pre-initialized area structure where "szDriver" is already filled in correctly (as are two other fields, apparently, but I'd leave your code "as is" regarding those two; your code does fill them in "redundantly", but that's what is what the MS doc says you should do.) But you should remove the memset(), as I did in the screen shot below. I tested this change and it does correct the problem. Although it seems like good programming practice to have that there, in this case Apparently the structure is "pre-initialized", so there's no garbage to worry about, and... It looks like you explicitly set every documented member except in ICINFO except szDriver, also making the memset() unnecessary (again, I realize it's normally good programming practice, because you never know when they might add to the structure in the future, but in this case it's a problem), and... Most importantly, as I've described above - though they fail to mention it - szDriver is "pre-filled" in, and your memset destroys that szDriver information. Apparently your last version lacked the memset, which is why it worked So I'd just comment out that memset() and that will fix the problem at hand, the problem where GSpot reports the codec as misconfigured and that the file is "missing". Of course, GSpot has its own issues, the most obvious is that it categorizes your encoder as a decoder :rolleyes: . It just assumes VFW codecs do both and puts it in that category for historic reasons). I'll have to see if I can fix that up in the next version.