Hi there!

As the good old title says! Check this out:

Code:
#define IID_PPV_ARGS(ppType) __uuidof(**(ppType)), IID_PPV_ARGS_Helper(ppType)
I sorta get the first bit. the IID_PPV_ARGS(ppType) thing gets defined as a GUID thing (in this case a COM pointer to a DirectX12 Command Queue) and expects an argument of type pointer to a pointer with argument name ppType.

I have no clue what the next bit is doing, and I'm even really sure I understand the first bit properly.

As if it couldn't get any stranger... it does - see what the book I'm reading (which this is from) says:

The IID_PPV_ARGS_Helper function esstentially casts ppType to a void**.
Really? I didn't see any of that in the definition. I could just proceed past this but I don't want to I'd rather take the time to understand it properly before proceeding.

Thanks