1*cdf0e10cSrcweir #include "macros.h"
2*cdf0e10cSrcweir #ifdef _MSC_VER
3*cdf0e10cSrcweir #pragma warning(push,1) // disable warnings within system headers
4*cdf0e10cSrcweir #endif
5*cdf0e10cSrcweir #include <psapi.h>
6*cdf0e10cSrcweir #ifdef _MSC_VER
7*cdf0e10cSrcweir #pragma warning(pop)
8*cdf0e10cSrcweir #endif
9*cdf0e10cSrcweir 
10*cdf0e10cSrcweir IMPLEMENT_THUNK( psapi, WINDOWS, DWORD, WINAPI, GetModuleFileNameExW, (HANDLE hProcess, HMODULE hModule, LPWSTR lpFileNameW, DWORD nSize ) )
11*cdf0e10cSrcweir {
12*cdf0e10cSrcweir 	AUTO_STR( lpFileName, 2 * nSize );
13*cdf0e10cSrcweir 
14*cdf0e10cSrcweir 	if ( GetModuleFileNameExA( hProcess, hModule, lpFileNameA, 2 * nSize ) )
15*cdf0e10cSrcweir 		return (DWORD) STR2WSTR( lpFileName, nSize );
16*cdf0e10cSrcweir 	else
17*cdf0e10cSrcweir 		return 0;
18*cdf0e10cSrcweir }