From a6a520835c9d804a0be67379c74b7603badda2ff Mon Sep 17 00:00:00 2001 From: hfiref0x Date: Wed, 5 Aug 2020 11:15:00 +0700 Subject: [PATCH] Update ImageScope plugin update, gui glitches fix --- Compiled/plugins/ImageScope.dll | Bin 139776 -> 139776 bytes Source/Plugins/ImageScope/Resource.rc | Bin 8302 -> 8326 bytes Source/Plugins/ImageScope/ui.c | 90 ++++++++++++++------------ Source/Shared/tabs/tabsctrl.c | 16 ++++- Source/Shared/tabs/tabsctrl.h | 4 +- WinObjEx64.sha256 | 10 +-- 6 files changed, 68 insertions(+), 52 deletions(-) diff --git a/Compiled/plugins/ImageScope.dll b/Compiled/plugins/ImageScope.dll index 23bd6a5e3b06554716294b4279ceb936a1e4a3d2..d05bd98eae12e60d79736330f381a22726a7b121 100644 GIT binary patch delta 34424 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 TF60)S{7Bq~(PXo}ggplU+-VNi delta 34 qcmZp3eCM!%PhfL{&@INvMIr&41B9lqP8N}zH#tCvXLFy#4|V|Oa162l diff --git a/Source/Plugins/ImageScope/ui.c b/Source/Plugins/ImageScope/ui.c index 50ff2b1..4bac1e6 100644 --- a/Source/Plugins/ImageScope/ui.c +++ b/Source/Plugins/ImageScope/ui.c @@ -6,7 +6,7 @@ * * VERSION: 1.00 * -* DATE: 01 Aug 2020 +* DATE: 03 Aug 2020 * * WinObjEx64 ImageScope UI. * @@ -194,7 +194,9 @@ VOID SectionDumpUnicodeString( _In_ HWND TreeList, _In_ HTREEITEM hParent, _In_ LPWSTR StringName, - _In_ PUNICODE_STRING pString + _In_ PUNICODE_STRING pString, + _In_ DWORD ItemState, + _In_ DWORD StateMask ) { HTREEITEM h_tviSubItem; @@ -211,8 +213,8 @@ VOID SectionDumpUnicodeString( TreeList, hParent, TVIF_TEXT | TVIF_STATE, - TVIS_EXPANDED, - 0, + ItemState, + StateMask, StringName, &subitems); @@ -236,7 +238,7 @@ VOID SectionDumpUnicodeString( supTreeListAddItem( TreeList, h_tviSubItem, - TVIF_TEXT | TVIF_STATE, + TVIF_TEXT, 0, 0, TEXT("Length"), @@ -261,7 +263,7 @@ VOID SectionDumpUnicodeString( supTreeListAddItem( TreeList, h_tviSubItem, - TVIF_TEXT | TVIF_STATE, + TVIF_TEXT, 0, 0, TEXT("MaximumLength"), @@ -289,7 +291,7 @@ VOID SectionDumpUnicodeString( supTreeListAddItem( TreeList, h_tviSubItem, - TVIF_TEXT | TVIF_STATE, + TVIF_TEXT, 0, 0, TEXT("Buffer"), @@ -355,7 +357,9 @@ VOID SectionDumpImageFileName( Context->TreeList, tviRoot, TEXT("Name"), - &ObjectNameInfo->Name); + &ObjectNameInfo->Name, + TVIS_EXPANDED, + TVIS_EXPANDED); } @@ -516,7 +520,7 @@ VOID SectionDumpStructs( sii.SubSystemMinorVersion); SectionDumpUlong(Context->TreeList, tviRoot, - sii.SubSystemVersion, TEXT("SubSystemType"), szText, UlongDump); + sii.SubSystemVersion, TEXT("SubSystemVersion"), szText, UlongDump); StringCchPrintf( szText, @@ -751,10 +755,15 @@ VOID SectionTabOnInit( HDITEM hdritem; GetClientRect(hWndDlg, &rc); + + TabCtrl_AdjustRect(Context->TabHeader->hwndTab, FALSE, &rc); + hwndList = CreateWindowEx(WS_EX_STATICEDGE, WC_TREELIST, NULL, WS_VISIBLE | WS_CHILD | WS_TABSTOP | TLSTYLE_COLAUTOEXPAND | TLSTYLE_LINKLINES, - 0, 0, - rc.right, rc.bottom, + rc.left, + rc.top, + rc.right, + rc.bottom, hWndDlg, NULL, NULL, NULL); if (hwndList) { @@ -1065,6 +1074,7 @@ VOID TabOnInit( default: break; } + } /* @@ -1149,6 +1159,9 @@ VOID TabsDumpList( GUI_CONTEXT* Context = GetProp(hWndDlg, T_IMS_PROP); HWND hwndList = GetDlgItem(hWndDlg, IDC_LIST); + if (Context == NULL) + return; + iSel = TabCtrl_GetCurSel(Context->TabHeader->hwndTab); switch (iSel) { @@ -1236,16 +1249,17 @@ VOID CALLBACK OnTabResize( HWND hwndList = 0; GUI_CONTEXT* Context; + Context = (GUI_CONTEXT*)GetProp(TabHeader->hwndDisplay, T_IMS_PROP); + if (Context == NULL) + return; + iSel = TabCtrl_GetCurSel(TabHeader->hwndTab); GetClientRect(TabHeader->hwndDisplay, &hwndRect); switch (iSel) { case TabIdSection: - Context = (GUI_CONTEXT*)GetProp(TabHeader->hwndDisplay, T_IMS_PROP); - if (Context) { - hwndList = Context->TreeList; - } + hwndList = Context->TreeList; break; case TabIdVSInfo: @@ -1257,33 +1271,21 @@ VOID CALLBACK OnTabResize( return; } - if (hwndList) SetWindowPos(hwndList, - 0, + if (hwndList == NULL) + return; + + GetClientRect(TabHeader->hwndDisplay, &hwndRect); + + TabCtrl_AdjustRect(TabHeader->hwndTab, FALSE, &hwndRect); + + SetWindowPos(hwndList, + HWND_TOP, 0, 0, hwndRect.right, hwndRect.bottom, SWP_NOOWNERZORDER); -} -/* -* OnTabSelChange -* -* Purpose: -* -* Tab window selection change callback. -* -*/ -VOID CALLBACK OnTabSelChange( - _In_ TABHDR* TabHeader, - _In_ INT SelectedTab -) -{ - UNREFERENCED_PARAMETER(SelectedTab); - - //destroy previous window - if (TabHeader->hwndDisplay != NULL) - DestroyWindow(TabHeader->hwndDisplay); } /* @@ -1305,7 +1307,6 @@ VOID OnResize( if (Context) { SendMessage(Context->StatusBar, WM_SIZE, 0, 0); - RedrawWindow(Context->StatusBar, NULL, 0, RDW_ERASE | RDW_INVALIDATE | RDW_ERASENOW); GetClientRect(hWnd, &r); GetClientRect(Context->StatusBar, &szr); @@ -1313,13 +1314,17 @@ VOID OnResize( //resize of the tab control if (Context->TabHeader != NULL) { - SetWindowPos(Context->TabHeader->hwndTab, HWND_TOP, - 0, 0, r.right, r.bottom - szr.bottom, 0); + SetWindowPos( + Context->TabHeader->hwndTab, + HWND_TOP, + 0, + 0, + r.right, + r.bottom - szr.bottom, + 0); TabResizeTabWindow(Context->TabHeader); - UpdateWindow(Context->TabHeader->hwndDisplay); - } } } @@ -1514,7 +1519,7 @@ BOOL RunUI( g_ThisDLL, Context->MainWindow, NULL, - (TABSELCHANGECALLBACK)&OnTabSelChange, + NULL, (TABRESIZECALLBACK)&OnTabResize, (TABCALLBACK_ALLOCMEM)&supHeapAlloc, (TABCALLBACK_FREEMEM)&supHeapFree); @@ -1551,6 +1556,7 @@ BOOL RunUI( } while ((rv != 0) && (g_PluginQuit == FALSE)); + TabDestroyControl(Context->TabHeader); DestroyWindow(Context->MainWindow); return TRUE; diff --git a/Source/Shared/tabs/tabsctrl.c b/Source/Shared/tabs/tabsctrl.c index 2d99973..66a2503 100644 --- a/Source/Shared/tabs/tabsctrl.c +++ b/Source/Shared/tabs/tabsctrl.c @@ -11,7 +11,7 @@ Abstract: Set of functions used with tab component. VERSION 2.0 (01.02.2015) - + WinObjEx64 version. --*/ @@ -125,9 +125,19 @@ VOID TabDestroyControl( _In_ PTABHDR hdr ) { + PTABENTRY tabEntry; + PLIST_ENTRY Entry; TABCALLBACK_FREEMEM pFree; + if (hdr) { pFree = hdr->FreeMem; + Entry = hdr->tabsHead.Flink; + + while ((Entry != NULL) && (Entry != &hdr->tabsHead)) { + tabEntry = CONTAINING_RECORD(Entry, TABENTRY, ListEntry); + Entry = Entry->Flink; + pFree(tabEntry); + } pFree(hdr); } } @@ -215,8 +225,8 @@ PTABHDR TabCreateControl( _In_ HINSTANCE hInstance, _In_ HWND hParentWnd, _In_opt_ HIMAGELIST hImageList, - _In_ TABSELCHANGECALLBACK OnSelChangeTab, - _In_ TABRESIZECALLBACK OnResizeTab, + _In_opt_ TABSELCHANGECALLBACK OnSelChangeTab, + _In_opt_ TABRESIZECALLBACK OnResizeTab, _In_ TABCALLBACK_ALLOCMEM MemAlloc, _In_ TABCALLBACK_FREEMEM MemFree ) diff --git a/Source/Shared/tabs/tabsctrl.h b/Source/Shared/tabs/tabsctrl.h index c4c5474..61b20f2 100644 --- a/Source/Shared/tabs/tabsctrl.h +++ b/Source/Shared/tabs/tabsctrl.h @@ -77,8 +77,8 @@ PTABHDR TabCreateControl( _In_ HINSTANCE hInstance, _In_ HWND hParentWnd, _In_opt_ HIMAGELIST hImageList, - _In_ TABSELCHANGECALLBACK OnSelChangeTab, - _In_ TABRESIZECALLBACK OnResizeTab, + _In_opt_ TABSELCHANGECALLBACK OnSelChangeTab, + _In_opt_ TABRESIZECALLBACK OnResizeTab, _In_ TABCALLBACK_ALLOCMEM MemAlloc, _In_ TABCALLBACK_FREEMEM MemFree); diff --git a/WinObjEx64.sha256 b/WinObjEx64.sha256 index b6dde14..d67adba 100644 --- a/WinObjEx64.sha256 +++ b/WinObjEx64.sha256 @@ -6,7 +6,7 @@ fa001b1ac9bbbb6c954d5dd609de60fa2b0277a6cfe35f6428591e4b4b1e8453 *Compiled\WHATS 95a49b8c75dc4f0d784176900d37cb03ed216e125fdbc92b75602156cd70e129 *Compiled\WinObjEx64.exe f2103ca9ffb50162897fb80d8d5a1a8eb470083d356261c11c79b9d8c00ab95b *Compiled\plugins\ApiSetView.dll fbb020fb38e72a85cfc0fcb0a1ab8ab780daa2df68efac69d04494c5e5a4431d *Compiled\plugins\ExamplePlugin.dll -0f049a1f21c2ac638e4533e900e95b11f1e8a0f0ffe8716804a3e1eb19f01ac4 *Compiled\plugins\ImageScope.dll +830ce78d398cf48c31e3de56e31c094b5b7749d67021e6cca03268646a3c02b0 *Compiled\plugins\ImageScope.dll b1597cdc8f9c740e21718efb1f3d615f576aa52530fa2c0467e148f9f2124a5b *Compiled\plugins\Sonar.dll 0505a450a13d5b742df2395c90af4e3029b05ce2157ee68f0c9e18a580c88091 *Docs\Callbacks.pdf a9a7b1448aae42671a9e38df1074056d6e1f6e5c0e15d95790be3be66f6b7910 *Docs\Plugins.pdf @@ -67,10 +67,10 @@ c06a75b13f855a94d46616796e024c52b499f8f92cf00ccb571ddbc6ff574676 *Source\Plugins a1beafe144a0b20f062de225ce53a23d7d6e0bcce8266ee488788a2adf896512 *Source\Plugins\ImageScope\query.c 70fcd612f41f100e8803326e5f28b8beccdef7bc9f22b41ccc0ef4f92fc1ae59 *Source\Plugins\ImageScope\query.h c1503020ed3120fdbf07cd802f4185844bada59eac02ba5820f92ef3b2bb3710 *Source\Plugins\ImageScope\resource.h -07cb5b8461ccd7e5764f8197fe0e96e9e25e18651b18052fd70a137890ab0ce6 *Source\Plugins\ImageScope\Resource.rc +29fd413d5c58ec791a9529f2c6176d5c7c1f7ed2069f787509995b84419a5617 *Source\Plugins\ImageScope\Resource.rc 56c6366805cdf36e3b5e9652b170d01bdbec14ee74520a1bf3f554bb32f98765 *Source\Plugins\ImageScope\sup.c 2ea1c3c1307680923d6f082740e0afe8b6cfa388a952db22bb6c7e18bfce2439 *Source\Plugins\ImageScope\sup.h -b170aa44e09ac8f61e144be2d165c2f50222786c00ac66babe10b4344927d391 *Source\Plugins\ImageScope\ui.c +8182318d279bc334e30cf81add4883f915ee3823e70d014fdb9660a7cd9c1a81 *Source\Plugins\ImageScope\ui.c 94657623b0536cbd3d62b18925490fca917b52606ad2ebeb41a468d4d2d5c2dd *Source\Plugins\ImageScope\ui.h 6b2236b93693d4830feb90ee504ae03555d4882d4c301bea55f7980973b5fb32 *Source\Plugins\Sonar\export.def 93afdfc5379b8482944b796f635e8fd50c7fd96e15785efce7bde3524949e55c *Source\Plugins\Sonar\global.h @@ -120,8 +120,8 @@ b9c7113bda8343b99599245e582c21426cf5b08d3c5b68ec5f1ee62feac0f5d1 *Source\Shared\ b63f0673d18e3b57d1a100e8b20bb0fab879832c4a8bde2ced234e901843feef *Source\Shared\ntos\ntsup.c 51ae1739bd8206d9f547fe466997695907757b9f73a5fdd2d8bf3f8c89f2805e *Source\Shared\ntos\ntsup.h a599f4baff680705c3c3827f363f298cc60050aa5eacb95acf0c8fe5831e71a6 *Source\Shared\sdk\extdef.h -e170cf3638a4c4471cda05346f06a6e6f575fbabb9338c0588584dfff177fcda *Source\Shared\tabs\tabsctrl.c -73c450a8c9a0dd75a6ffc198bf73db5af8d4e89cb00196f1d6eb44086948ee06 *Source\Shared\tabs\tabsctrl.h +4c28e19c053aa573e60006778fc00abc82a235e73f901be2c760af2798ca4869 *Source\Shared\tabs\tabsctrl.c +bc790054cc554fc105534c5bfa86c016624f10af1fad7dc67497fb275020bcff *Source\Shared\tabs\tabsctrl.h f2389aedc5e391d523f5f6eb797750c1a6d49ec98c162c0fe37421673dadbf8b *Source\Shared\treelist\treelist.c b7d270ce4b02c0f6680b6f79b9cc74603d5dbca466d4f08e533a8e627bc1aa9e *Source\Shared\treelist\treelist.h 368eaf36e5ac381cc25d794f2d3ac4c05b05426af09a8a828ba1bf81bce32c1c *Source\WinObjEx64\aboutDlg.c