Many Includes for Indirect Display Class Produce Errors

Hi. I’m trying to emulate the example at https://github.com/microsoft/Windows-driver-samples/tree/master/video/IndirectDisplay. The example compiles as-is, but when trying to adapt this code into my own project I encounter a slew of errors related to the headers.

In some cases I have found reordering them works, but:

  1. I can’t find an order that works in my project, and,
  2. the example project contains an include ordering that doesn’t work in mine!

I can see that the VS project for the example contains more external references. Notably iddcx.h is automatically resolved to its versioned folder whereas I can not figure out how to do that. wrl.h produces fun errors as well, most of them related to expecting an identifier or missing a semicolon, but also gives #error WRL requires C++ compilation (use a .cpp suffix). If I include iddcx.h by versioned folder I get an error on an enum definition with storage type specified.

I am hoping someone knows the proper dance. Thanks in advance. My code (mostly the generated skeleton) can be seen here: https://github.com/R030t1/VirtualMonitor. I could just shut up and use the example but I’d like to know what exactly is going wrong.

This is typically a result of an improper WDK installation or WDK mismatch.