42 _In_opt_ PVOID Parameter1,
43 _In_opt_ PVOID Parameter2,
44 _In_opt_ PVOID Context
48 _In_ HWND ParentWindowHandle,
49 _In_ HWND TreeNewHandle,
67 Context->ParentWindowHandle = ParentWindowHandle;
68 Context->TreeNewHandle = TreeNewHandle;
98 for (i = 0; i < Context->NodeList->Count; i++)
150 _In_ HWND WindowHandle
160 Context->NodeHashtable,
181 if ((index = PhFindItemList(Context->NodeList, WindowNode)) != -1)
202 #define SORT_FUNCTION(Column) WepWindowTreeNewCompare##Column
204 #define BEGIN_SORT_FUNCTION(Column) static int __cdecl WepWindowTreeNewCompare##Column( \
205 _In_ void *_context, \
206 _In_ const void *_elem1, \
207 _In_ const void *_elem2 \
210 PWE_WINDOW_NODE node1 = *(PWE_WINDOW_NODE *)_elem1; \
211 PWE_WINDOW_NODE node2 = *(PWE_WINDOW_NODE *)_elem2; \
214 #define END_SORT_FUNCTION \
215 return PhModifySort(sortResult, ((PWE_WINDOW_TREE_CONTEXT)_context)->TreeNewSortOrder); \
220 sortResult = wcsicmp(node1->WindowClass, node2->WindowClass);
226 sortResult =
uintptrcmp((ULONG_PTR)node1->WindowHandle, (ULONG_PTR)node2->WindowHandle);
238 sortResult =
uintptrcmp((ULONG_PTR)node1->ClientId.UniqueProcess, (ULONG_PTR)node2->ClientId.UniqueProcess);
241 sortResult =
uintptrcmp((ULONG_PTR)node1->ClientId.UniqueThread, (ULONG_PTR)node2->ClientId.UniqueThread);
248 _In_opt_ PVOID Parameter1,
249 _In_opt_ PVOID Parameter2,
250 _In_opt_ PVOID Context
283 static PVOID sortFunctions[] =
290 int (__cdecl *sortFunction)(
void *,
const void *,
const void *);
326 switch (getCellText->
Id)
357 getNodeColor->
ForeColor = RGB(0x55, 0x55, 0x55);
376 if (GetKeyState(VK_CONTROL) < 0)
410 for (i = 0; i < Context->NodeList->Count; i++)
425 for (i = 0; i < Context->NodeList->Count; i++)
427 windowNode = Context->NodeList->Items[i];
439 _Out_ PULONG NumberOfWindows
447 for (i = 0; i < Context->NodeList->Count; i++)
458 *NumberOfWindows = list->
Count;