• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

CFPlugInCOM.h

porter

Well-known member
Good news, after dropping SOMobjects, Apple have decided to adopt a language independent object model, ie COM and is even available on the iPhone.

Bad news, how did they manage to screw up IUnknown::QueryInterface so badly? The normal COM passes the IID as a pointer, what did Apple do? Some plonker defined REFIID as CFUUIDBytes so you now have to push 16 bytes on the stack instead of passing a reference. Presumably this screw-up occurred because originally on a Mac a UUID was just 16 bytes as an array, when they moved it to a struct containing 16 bytes it messed up the ABI. If they had originally defined it DCE had defined it decades ago they wouldn't have fallen into this mess.

 
Top