The Old New Thing

Using the REFIID/void** pattern for returning COM objects for future-proofing and to avoid problems with dependencies

Suppose you have a function that creates a reference to a COM object: There are a few issues with this design. First of all, it requires that whoever uses your header file must have included first, since that's where is defined. You could solve that problem by putting at the top of , but that creates its own problems. For example, ...