Repository navigation
KillerShell v1.1.4
1.1.4 fixes a crash when dragging files to external applications like Teams and Telegram, plus a ghost icon that persisted on the desktop after dragging to external apps.
Fixed
- Dragging a file to Teams, Telegram, or other external apps could crash KillerShell with an
AccessViolationException-NativeDataObjectdid not check for NULL returns fromGlobalAllocandGlobalLock, so when either failed the code would attempt to access invalid memory. Error checking and exception handling added for all Win32 global-memory operations. NativeDataObject.GetDatacould throw unhandled exceptions when called from a different thread (which happens when dragging to external apps), crashing the entire drag operation - now wrapped in a try-catch to return an empty medium on error, matching the same defensive behavior for in-process calls.- The HDROP structure building could overflow with very large file paths or many files - overflow checks added to prevent negative size calculations that could cause
GlobalAllocto fail. - Dragging a file to an external app left a ghost icon (the drag-image layered window) permanently visible on the desktop until the app closed -
IDragSourceHelpermanages the drag-image window lifecycle and must stay alive for the entireDoDragDropcall. The helper was being released immediately after initializing the drag image, before the drag even started, which orphaned the window and prevented ole32 from cleaning it up. The helper is now kept alive through the entire drag and only disposed afterDoDragDropreturns.