00001 /* 00002 Free Download Manager Copyright (c) 2003-2007 FreeDownloadManager.ORG 00003 */ 00004 00005 #ifndef __VISTA_FX_H_ 00006 #define __VISTA_FX_H_ 00007 00008 class VistaFx 00009 { 00010 public: 00011 BOOL LoadDll (LPCSTR pszFileName) { 00012 if (m_hDll) 00013 return TRUE; 00014 m_hDll = LoadLibrary (pszFileName); 00015 return m_hDll != NULL; 00016 } 00017 00018 BOOL IsProcessElevated () { 00019 typedef BOOL (*FNIPE)(); 00020 FNIPE pfn = (FNIPE) GetProcAddress (m_hDll, "_IsProcessElevated"); 00021 return pfn ? pfn () : FALSE; 00022 } 00023 00024 BOOL RunNonElevatedProcess (LPCSTR pszPath, LPCSTR pszParameters, LPCSTR pszDirectory) { 00025 typedef BOOL (*FNRNEP)(LPCSTR, LPCSTR, LPCSTR); 00026 FNRNEP pfn = (FNRNEP) GetProcAddress (m_hDll, "_RunNonElevatedProcess"); 00027 return pfn ? pfn (pszPath, pszParameters, pszDirectory) : FALSE; 00028 } 00029 00030 static BOOL IsVista () { 00031 OSVERSIONINFO osver; 00032 osver.dwOSVersionInfoSize = sizeof (OSVERSIONINFO); 00033 return GetVersionEx (&osver) && osver.dwPlatformId == VER_PLATFORM_WIN32_NT && 00034 osver.dwMajorVersion == 6; 00035 } 00036 00037 VistaFx () { m_hDll = NULL; } 00038 ~VistaFx () { if (m_hDll) FreeLibrary (m_hDll); m_hDll = NULL; } 00039 00040 protected: 00041 HMODULE m_hDll; 00042 00043 }; 00044 00045 #endif
1.5.6