reactos/base/applications/rapps/include/misc.h
Alexander Shaposhnikov 9591550116
[RAPPS] Replace Extract with FDI for handling .cab
FDI allows to have user-defined callbacks for file handling.
Since it doesn't provide support for Unicode we convert strings to
multi-byte UTF-8 and handle them appropriately in the callbacks. They
are properly null-terminated so FDI won't choke when doing operations
with strings.

Thanks to hbelusca and mjansen for the help.

CORE-14466
2018-03-11 21:56:32 +02:00

47 lines
1.3 KiB
C++

#pragma once
#include <windef.h>
#include <atlstr.h>
INT GetWindowWidth(HWND hwnd);
INT GetWindowHeight(HWND hwnd);
INT GetClientWindowWidth(HWND hwnd);
INT GetClientWindowHeight(HWND hwnd);
VOID CopyTextToClipboard(LPCWSTR lpszText);
VOID SetWelcomeText();
VOID ShowPopupMenu(HWND hwnd, UINT MenuID, UINT DefaultItem);
BOOL StartProcess(ATL::CStringW &Path, BOOL Wait);
BOOL StartProcess(LPWSTR lpPath, BOOL Wait);
BOOL GetStorageDirectory(ATL::CStringW &lpDirectory);
VOID InitLogs();
VOID FreeLogs();
BOOL WriteLogMessage(WORD wType, DWORD dwEventID, LPCWSTR lpMsg);
BOOL GetInstalledVersion(ATL::CStringW *pszVersion, const ATL::CStringW &szRegName);
BOOL ExtractFilesFromCab(const ATL::CStringW& szCabName,
const ATL::CStringW& szCabDir,
const ATL::CStringW& szOutputDir);
class CConfigParser
{
// Locale names cache
const static INT m_cchLocaleSize = 5;
ATL::CStringW m_szLocaleID;
ATL::CStringW m_szCachedINISectionLocale;
ATL::CStringW m_szCachedINISectionLocaleNeutral;
const ATL::CStringW szConfigPath;
ATL::CStringW GetINIFullPath(const ATL::CStringW& FileName);
VOID CacheINILocale();
public:
CConfigParser(const ATL::CStringW& FileName = "");
UINT GetString(const ATL::CStringW& KeyName, ATL::CStringW& ResultString);
UINT GetInt(const ATL::CStringW& KeyName);
};