we still need to not clobber GetLastError.
re-reading the [tests for CopyFile2](dlls/kernel32/tests/file.c#L1108-1110), apparently the tests expect CopyFile2 to return a HRESULT _and_`SetLastError` (example in linked code)
therefore we apparently _are_ supposed to clobber `GetLastError`. MSDN documentation doesn't mention anything either way.