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