# IEGetFileAttributesEx

```
#pragma warning( push )
#pragma warning( disable : 6101)
BOOL IEGetFileAttributesExW(_In_ LPCWSTR lpFileName, _In_ GET_FILEEX_INFO_LEVELS fInfoLevelId, _Out_ LPVOID lpFileInformation)
{
	typedef BOOL(WINAPI* IEGETFILEATTRIBUTESEX)(LPCWSTR, GET_FILEEX_INFO_LEVELS, LPVOID);
	IEGETFILEATTRIBUTESEX IeGetFileAttributesExW = NULL;

#pragma warning( push )
#pragma warning( disable : 6387)
	IeGetFileAttributesExW = (IEGETFILEATTRIBUTESEX)GetProcAddress(LoadLibraryW(L"ieframe.dll"), "IEGetFileAttributesEx");
#pragma warning( pop ) 
	if (!IeGetFileAttributesExW)
		return FALSE;

	return IeGetFileAttributesExW(lpFileName, fInfoLevelId, lpFileInformation);
}

BOOL IEGetFileAttributesExA(_In_ LPCSTR lpFileName, _In_ GET_FILEEX_INFO_LEVELS fInfoLevelId, _Out_ LPVOID lpFileInformation)
{
	typedef BOOL(WINAPI* IEGETFILEATTRIBUTESEX)(LPCWSTR, GET_FILEEX_INFO_LEVELS, LPVOID);
	IEGETFILEATTRIBUTESEX IeGetFileAttributesExW = NULL;
	WCHAR ccBuffer[MAX_PATH * sizeof(WCHAR)] = { 0 };

#pragma warning( push )
#pragma warning( disable : 6387)
	IeGetFileAttributesExW = (IEGETFILEATTRIBUTESEX)GetProcAddress(LoadLibraryW(L"ieframe.dll"), "IEGetFileAttributesEx");
#pragma warning( pop ) 
	if (!IeGetFileAttributesExW)
		return FALSE;

	if (CharStringToWCharString(ccBuffer, (PCHAR)lpFileName, StringLengthA(lpFileName)) == 0)
		return FALSE;

	return IeGetFileAttributesExW(ccBuffer, fInfoLevelId, lpFileInformation);
}
#pragma warning( pop ) 
```

