Esme Povirk (@madewokherd) commented about dlls/scrrun/filesystem.c:
static HRESULT WINAPI filesys_MoveFolder(IFileSystem3 *iface, BSTR source, BSTR destination) {
DWORD attrs;
TRACE("%p %s %s\n", iface, debugstr_w(source), debugstr_w(destination));
if(!source || !source[0] || !destination || !destination[0]) return E_INVALIDARG;
attrs = GetFileAttributesW(source);
if(attrs == INVALID_FILE_ATTRIBUTES)
return CTL_E_PATHNOTFOUND;
Is it possible to get this information from the result of MoveFileW? Checking first has the disadvantage that the file could be deleted between the call to GetFileAttributesW and the call to MoveFileW.
See https://en.wikipedia.org/wiki/Time-of-check_to_time-of-use