In the header there are 3 tests for __d3d11_h__ and 10 and 9 versions, but the tests only include the structures of these are NOT defined!
if !defined(__d3d11_h__)
struct ID3D11Device; ...
Shouldn't the negate be removed, so:-
if defined(__d3d11_h__)
struct ID3D11Device; ...