I think that it would be better to make htmldoc.c exclusively about document node and move document object implementation out of it (to oleobj.c, maybe?). I also don't see the point of renaming implementation functions of IHTML* interfaces to DocNodeHTML*, I'd suggest to keep current names for node object implementation.