See the question and my original answer on StackOverflow

The libpng site has a full list of implementation:

Programming Libraries and Toolkits with PNG Support

This one looks interesting (open source, win32 support): http://www.paintlib.de/paintlib/ (untested). It's not maitained anymore but source is included, and there are not many reason to face big issues today if it used to work well during many years.

It's not COM-based, but is it a problem for you?