http://d.puremagic.com/issues/show_bug.cgi?id=3732
Summary: Not all COM interfaces inherit from IUnknown. Product: D Version: 2.037 Platform: x86 OS/Version: Windows Status: NEW Severity: minor Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: burton-rad...@shaw.ca --- Comment #0 from Burton Radons <burton-rad...@shaw.ca> 2010-01-20 19:59:05 PST --- Well this is rude. It turns out some COM interfaces - I specifically know of ID3D10Include (http://msdn.microsoft.com/en-us/library/ee419311%28VS.85%29.aspx) - do not inherit from IUnknown. Since inheritance from IUnknown is how DMD applies its magic, it means that such interfaces cannot be implemented directly from D. It would seem preferable to have a "pragma (COM)" or "pragma (com)" attribute to apply to an interface to cause it and its descendants to be understood to be COM participants than to inherit from IUnknown, which seems an outdated commonality, unfortunately. The justification from Microsoft's side seems to be that ID3D10Include objects should be lightweight, so removing IUnknown allows them to be stack objects since it's impossible for anyone to retain a living reference to them after returning. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------