title: SHCreateItemFromParsingName return FILE_NOT_FOUND when filename specified
body: <p>I try get IShellItem for a file to copy it with IFileOperation COM interface from system directory to another directory. I must use exactly IFileOperation COM interface for this purpose.</p>
  
  <p>When I specify full filename - return value from <code>SHCreateItemFromParsingName()</code> was <code>ERROR_FILE_NOT_FOUND</code>, but file present in the directory. When I delete filename from path below and use only folder path - all seems good, return value is <code>S_OK</code>.</p>
  
  <pre><code>//...
  CoInitialize(NULL);
  //...
  WCHAR szSourceDll[MAX_PATH * 2];
  wcscpy_s(szSourceDll, MAX_PATH, L"C:\\Windows\\System32\\sysprep\\cryptbase.dll");
  r = CoCreateInstance(&amp;CLSID_FileOperation, NULL, CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_INPROC_HANDLER, &amp;IID_IFileOperation, &amp;FileOperation1);
  if (r != S_OK) return;
  FileOperation1-&gt;lpVtbl-&gt;SetOperationFlags(FileOperation1, FOF_NOCONFIRMATION | FOFX_NOCOPYHOOKS | FOFX_REQUIREELEVATION);
  r = SHCreateItemFromParsingName(szSourceDll, NULL, &amp;IID_IShellItem, &amp;isrc);
  //...
  CoUninitialize();
  //...
  </code></pre>
  
  <p>Why this code, written in <code>C</code>, not working with filenames. How can I create <code>IShellItem</code> instance for file in system folder to copy it?</p>
  
  <p><strong>P.S.</strong></p>
  
  <p>Windows 7 x64, C, Visual Studio 2015, v140 platform toolset, additional dependencies: <em>Msi.lib;Wuguid.lib;ole32.lib;ntdll.lib</em></p>
  
  <p><strong>P.P.S</strong></p>
  
  <p>It's properly work with files in user`s directories...</p>