xref: /reactos/base/applications/rapps/include/misc.h (revision 6a31fe6c)
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