| 2904 | } |
| 2905 | |
| 2906 | DWORD WINAPI shCustomGetFileAttributesA(LPCSTR lpFileName) |
| 2907 | { |
| 2908 | auto raddr = _ReturnAddress(); |
| 2909 | auto bRecursive = isRecursive(raddr); |
| 2910 | if (!bRecursive && HasVirtualFiles() && IsVirtualFile(lpFileName)) |
| 2911 | { |
| 2912 | if (GetVirtualFileByPath(lpFileName)) |
| 2913 | { |
| 2914 | return FILE_ATTRIBUTE_NORMAL; |
| 2915 | } |
| 2916 | SetLastError(ERROR_FILE_NOT_FOUND); |
| 2917 | return INVALID_FILE_ATTRIBUTES; |
| 2918 | } |
| 2919 | auto r = GetFilePathForOverload(lpFileName, bRecursive); |
| 2920 | return mhGetFileAttributesA->get_original<decltype(GetFileAttributesA)>()(value_orA(r, lpFileName)); |
| 2921 | } |
| 2922 | |
| 2923 | DWORD WINAPI shCustomGetFileAttributesW(LPCWSTR lpFileName) |
| 2924 | { |
nothing calls this directly
no test coverage detected