title: Win Api The given CanonicalName is not valid
body: <p>I am trying to add or change file property. Like this question:</p>
  
  <p><a href="https://stackoverflow.com/questions/21982898/get-or-set-file-details-programmatically/21985091">Get or set file details programmatically</a></p>
  
  <p>but I am getting error. My OS is Windows 8.1. Isn't this code not working my OS.</p>
  
  <p>My code:</p>
  
  <pre><code>ShellObject xml = ShellObject.FromParsingName(@"C:\Users\Muslum\Desktop\test.xml");
  var writer = xml.Properties.GetPropertyWriter(); // throw exception in this line
  //set value test 1
  writer.WriteProperty(SystemProperties.System.Subject, "Test subject");
  
  //set value test 2
  //writer.WriteProperty("Test", "Value");
  writer.Close();
  </code></pre>
  
  <p>Error Message: </p>
  
  <pre><code>An unhandled exception of type   'Microsoft.WindowsAPICodePack.Shell.PropertySystem.PropertySystemException' occurred in Microsoft.WindowsAPICodePack.Shell.dll
  
  Additional information: Unable to get writable property store for this property.
  </code></pre>
  
  <p>Inner exception :</p>
  
  <pre><code>{"Error HRESULT E_FAIL has been returned from a call to a COM component."}
  </code></pre>
  
  <p>How can I resolve this problem?</p>