1 #pragma once 2 3 #include <windef.h> 4 #include <atlstr.h> 5 6 #define EPOCH_DIFF 116444736000000000 //FILETIME starts from 1601-01-01 UTC, UnixTime starts from 1970-01-01 7 #define RATE_DIFF 10000000 8 9 10 INT GetWindowWidth(HWND hwnd); 11 INT GetWindowHeight(HWND hwnd); 12 INT GetClientWindowWidth(HWND hwnd); 13 INT GetClientWindowHeight(HWND hwnd); 14 15 VOID CopyTextToClipboard(LPCWSTR lpszText); 16 VOID ShowPopupMenuEx(HWND hwnd, HWND hwndOwner, UINT MenuID, UINT DefaultItem); 17 VOID ShowPopupMenu(HWND hwnd, UINT MenuID, UINT DefaultItem); 18 BOOL StartProcess(ATL::CStringW &Path, BOOL Wait); 19 BOOL StartProcess(LPWSTR lpPath, BOOL Wait); 20 BOOL GetStorageDirectory(ATL::CStringW &lpDirectory); 21 22 VOID InitLogs(); 23 VOID FreeLogs(); 24 BOOL WriteLogMessage(WORD wType, DWORD dwEventID, LPCWSTR lpMsg); 25 BOOL GetInstalledVersion(ATL::CStringW *pszVersion, const ATL::CStringW &szRegName); 26 27 BOOL ExtractFilesFromCab(const ATL::CStringW& szCabName, 28 const ATL::CStringW& szCabDir, 29 const ATL::CStringW& szOutputDir); 30 31 class CConfigParser 32 { 33 // Locale names cache 34 const static INT m_cchLocaleSize = 5; 35 36 ATL::CStringW m_szLocaleID; 37 ATL::CStringW m_szCachedINISectionLocale; 38 ATL::CStringW m_szCachedINISectionLocaleNeutral; 39 40 const ATL::CStringW szConfigPath; 41 42 ATL::CStringW GetINIFullPath(const ATL::CStringW& FileName); 43 VOID CacheINILocale(); 44 45 public: 46 CConfigParser(const ATL::CStringW& FileName = ""); 47 48 BOOL GetString(const ATL::CStringW& KeyName, ATL::CStringW& ResultString); 49 BOOL GetInt(const ATL::CStringW& KeyName, INT& iResult); 50 }; 51 52 BOOL PathAppendNoDirEscapeW(LPWSTR pszPath, LPCWSTR pszMore); 53 54 BOOL IsSystem64Bit(); 55 56 INT GetSystemColorDepth(); 57 58 void UnixTimeToFileTime(DWORD dwUnixTime, LPFILETIME pFileTime); 59 60 BOOL SearchPatternMatch(LPCWSTR szHaystack, LPCWSTR szNeedle); 61 62 template<class T> 63 class CLocalPtr : public CHeapPtr<T, CLocalAllocator> 64 { 65 }; 66 67