title: Why don't my DeviceInformation objects have a System.Devices.InterfaceClassGuid property?
body: <p>I'm trying to enumerate all devices on the system with C++/WinRT in a desktop app:</p>
  <pre><code>auto devices = winrt::Windows::Devices::Enumeration::DeviceInformation::FindAllAsync().get();
  for (int i = 0; i &lt; devices.Size(); i ++)
  {
      auto device = devices.GetAt(i);
      auto props = device.Properties();
      if (props.HasKey(L&quot;System.Devices.InterfaceClassGuid&quot;)) {
          // Get the GUID and print it
      }
  }
  </code></pre>
  <p><a href="https://docs.microsoft.com/en-us/windows/uwp/devices-sensors/build-a-device-selector" rel="nofollow noreferrer">This MSDN article</a> states:</p>
  <blockquote>
  <p>If you do not specify the DeviceInformationKind, or the method you are using does not provide a DeviceInformationKind parameter, the default kind is DeviceInterface.</p>
  </blockquote>
  <p>And <a href="https://docs.microsoft.com/en-us/windows/uwp/devices-sensors/device-information-properties" rel="nofollow noreferrer">this MSDN article</a> lists <code>System.Devices.InterfaceClassGuid</code> as a property for <code>DeviceInterface</code>.</p>
  <p>However, none of the <code>DeviceInformation</code> objects returned by <code>FindAllAsync</code> have a <code>System.Devices.InterfaceClassGuid</code> property. What am I doing wrong here?</p>