10#define HKEY_GRAYED HKEY_REGTREEOPTION_GRAYED
11#define MAXVALUEDATA 100
51 INT BorderSize =
max(1,
min(ImageSize / 16, 4));
117 default:
return Type;
131 return Err ? Default :
Data;
189 hr =
Set ? pRTI->SetCheckState(*boolptr) : pRTI->GetCheckState(boolptr);
216 if (
Set && (HasMask || HasOffset))
222 DWORD DefaultData = 0;
223 cb =
sizeof(DefaultData);
242 pBigData[
Offset] &= ~Mask;
305 CurrSize =
sizeof(CurrData);
310 CurrSize =
sizeof(CurrData);
320 if (CurrType != CheckType)
324 else if (CheckType ==
REG_SZ)
333 Checked =
CheckSize == CurrSize && !
memcmp(CheckData, CurrData, CurrSize);
347 LPCWSTR Name = Checked ?
L"CheckedValue" :
L"UncheckedValue";
396 tvi.iImage = tvi.iSelectedImage = (tvi.iImage & ~1) | (
hr ==
S_OK);
432 tvi.lParam = (
LPARAM)hItemKey;
448 hCloseKey = hItemKey;
469 hCloseKey = hItemKey;
472 tvi.iImage = (tvi.iImage & ~1) | ((grayed & 2) != 0);
475 tvi.iSelectedImage = tvi.iImage;
476 tvis.hParent = hParent;
477 tvis.hInsertAfter = hInsertAfter;
488 if (hCloseKey && hItemKey != hCloseKey)
551 tvi.iSelectedImage = tvi.iImage;
VOID CheckSize(ULONG_PTR Base, SIZE_T InSize, SIZE_T ExpectedSize)
PRTL_UNICODE_STRING_BUFFER Path
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
LPCWSTR GetRegString(CRegKey &Key, LPCWSTR Name, CStringW &Value)
#define STDMETHODCALLTYPE
#define RegCloseKey(hKey)
STDMETHOD() ShowHelp(HTREEITEM hTI, unsigned long Unknown) override
STDMETHOD() ToggleItem(HTREEITEM hTI) override
STDMETHOD() WalkTree(WALK_TREE_CMD Command) override
STDMETHOD() InitTree(HWND hTV, HKEY hKey, LPCSTR SubKey, char const *pUnknown) override
void AddItemsFromRegistry(HKEY hKey, HTREEITEM hParent, HTREEITEM hInsertAfter)
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegEnumKeyExW(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPWSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpReserved, _Out_opt_ LPWSTR lpClass, _Inout_opt_ LPDWORD lpcbClass, _Out_opt_ PFILETIME lpftLastWriteTime)
INT WINAPI ImageList_Add(HIMAGELIST himl, HBITMAP hbmImage, HBITMAP hbmMask)
BOOL WINAPI ImageList_Destroy(HIMAGELIST himl)
HIMAGELIST WINAPI ImageList_Create(INT cx, INT cy, UINT flags, INT cInitial, INT cGrow)
#define ERROR_ACCESS_DENIED
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
int WINAPI PathParseIconLocationW(WCHAR *path)
HRESULT WINAPI SHCoCreateInstance(LPCWSTR aclsid, const CLSID *clsid, LPUNKNOWN pUnkOuter, REFIID refiid, LPVOID *ppv)
HRESULT WINAPI SHLoadRegUIStringW(HKEY hkey, LPCWSTR value, LPWSTR buf, DWORD size)
HRESULT WINAPI IUnknown_QueryService(IUnknown *, REFGUID, REFIID, LPVOID *)
DWORD WINAPI SHSetValueW(HKEY hKey, LPCWSTR lpszSubKey, LPCWSTR lpszValue, DWORD dwType, LPCVOID pvData, DWORD cbData)
DWORD WINAPI SHAnsiToUnicode(LPCSTR lpSrcStr, LPWSTR lpDstStr, int iLen)
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
UINT WINAPI ExtractIconExW(LPCWSTR lpszFile, INT nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIcons)
#define ERROR_FILE_NOT_FOUND
static HMODULE MODULEINFO DWORD cb
#define KEY_ENUMERATE_SUB_KEYS
#define UNREFERENCED_PARAMETER(P)
_In_ ULONG _In_ ULONG Offset
_Out_opt_ int _Out_opt_ int * cy
#define TreeView_Expand(hwnd, hitem, code)
#define TreeView_GetChild(hwnd, hitem)
#define TreeView_EnsureVisible(hwnd, hitem)
#define TreeView_GetParent(hwnd, hitem)
#define TreeView_GetItem(hwnd, pitem)
#define TreeView_GetRoot(hwnd)
#define TreeView_GetNextSibling(hwnd, hitem)
#define ImageList_AddIcon(himl, hicon)
#define TreeView_SetImageList(hwnd, himl, iImage)
#define TreeView_InsertItem(hwnd, lpis)
#define TVIF_SELECTEDIMAGE
#define TreeView_SetItem(hwnd, pitem)
static int AddIconFromRegistry(HIMAGELIST hIL, HKEY hKey, LPCWSTR Name)
static HRESULT GetRegString(HKEY hKey, LPCWSTR Name, LPWSTR Buffer, DWORD cchBuffer)
static void WalkTree(WALK_TREE_CMD Command, HWND hTree, HTREEITEM hTI)
static HRESULT SaveCheckState(HKEY hKey, BOOL Checked)
static HRESULT GetCheckState(HKEY hKey, BOOL UseDefault=FALSE)
static HIMAGELIST CreateStateImages(UINT ImageSize)
C_ASSERT((STATE_CHECKON &1) &&(STATE_RADIOON &1) &&STATE_RADIOON< STATE_GROUP)
static DWORD GetRegDWORD(HKEY hKey, LPCWSTR Name, PDWORD Data)
static HRESULT GetSetState(HKEY hKey, DWORD &Type, LPBYTE Data, DWORD &Size, BOOL Set)
static DWORD NormalizeRegType(DWORD Type)
static HRESULT GetDefaultValue(HKEY hKey, DWORD &Type, LPVOID Data, DWORD &Size)
static HBITMAP CreatDibBitmap(HDC hDC, UINT cx, UINT cy, UINT bpp)
enum tagWALK_TREE_CMD WALK_TREE_CMD
LSTATUS WINAPI SHRegGetValueW(_In_ HKEY hkey, _In_opt_ LPCWSTR pszSubKey, _In_opt_ LPCWSTR pszValue, _In_ SRRF srrfFlags, _Out_opt_ LPDWORD pdwType, _Out_writes_bytes_to_opt_(*pcbData, *pcbData) LPVOID pvData, _Inout_opt_ LPDWORD pcbData)
EXTERN_C BOOL WINAPI SHBoolSystemParametersInfo(UINT uiAction, PVOID pvParam)
BITMAPINFOHEADER bmiHeader
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
HBITMAP WINAPI CreateDIBSection(HDC hDC, CONST BITMAPINFO *BitmapInfo, UINT Usage, VOID **Bits, HANDLE hSection, DWORD dwOffset)
_In_ PSID _Out_writes_to_opt_ cchName LPSTR _Inout_ LPDWORD cchName
#define HRESULT_FROM_WIN32(x)
HGDIOBJ WINAPI GetStockObject(_In_ int)
HBITMAP WINAPI CreateBitmap(_In_ INT cx, _In_ INT cy, _In_ UINT cPlanes, _In_ UINT cBitsPerPel, _In_opt_ const VOID *pvBits)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
BOOL WINAPI DeleteDC(_In_ HDC)
#define HKEY_CURRENT_USER
BOOL WINAPI DrawFrameControl(_In_ HDC, _Inout_ LPRECT, _In_ UINT, _In_ UINT)
#define DFCS_BUTTONRADIOMASK
#define DFCS_BUTTONRADIOIMAGE
BOOL WINAPI InflateRect(_Inout_ LPRECT, _In_ int, _In_ int)
int WINAPI GetSystemMetrics(_In_ int)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)
BOOL WINAPI DestroyIcon(_In_ HICON)
#define IID_PPV_ARG(Itype, ppType)