Skip to content

Add ActiveX file drag-and-drop and end-to-end checks - #44

Merged
pmeems merged 4 commits into
phase-4-programmatic-navigationfrom
phase-6-drag-and-drop-and-end-to-end-testing
Nov 4, 2026
Merged

pmeems merged 4 commits into
phase-4-programmatic-navigationfrom
phase-6-drag-and-drop-and-end-to-end-testing

Conversation

@pmeems

@pmeems pmeems commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

Adds file drag-and-drop to the ActiveX control in windowed hosts, including WinForms AxHost, and windowless hosts that forward OLE drops. Windowed controls register and revoke their OLE drop targets. Drop copies the paths and queues loading on the owning COM thread before returning. Loading is deferred, not moved to a worker thread, so large datasets can still block the control UI.

Supported vector files append as layers, then the control fits their combined visible extent. Invalid files do not discard successful loads. DropFileCompleted reports each path and HRESULT; DropCompleted reports loaded and failed counts plus the batch HRESULT. The C# host displays failures. Closing the control cancels pending drops safely, including closure from an event callback.

Extends native checks for windowed registration, deferred loading, rejected formats, COPY/MOVE effects, DragOver/DragLeave, partial failures, and close-time cancellation. Host checks verify cursor anchoring, use LockBits for pixel comparisons, and wait for application-idle events instead of fixed repaint delays. README and relevant docs describe the event contract and intentional 64-bit automation limits.

Validation: Debug x64 solution build without new warnings; 309 native tests passed with 3 opt-in skips; all 17 automated C# host checks passed. Actual Explorer drag-and-drop remains a manual desktop check.

Based on phase-4-programmatic-navigation with merged #43 incorporated. IMapWinGISControl4, feature-count snapshots, pan cleanup, and initial-fit behavior are inherited from that base rather than added by this drop change.

pmeems and others added 2 commits October 31, 2026 18:24
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@pmeems
pmeems added this pull request to stack #45 October 31, 2026 17:49
Base automatically changed from phase-5-interactive-navigation-in-activex to phase-4-programmatic-navigation November 4, 2026 11:05
pmeems and others added 2 commits November 4, 2026 12:15
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Register windowed OLE drop targets, queue copied file paths outside Drop, and report per-file and batch results through source events. Cancel pending work safely on close, including event reentrancy. Strengthen drop and host repaint checks and document the asynchronous contract and compatibility limits.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@pmeems pmeems changed the title MapWinGIS6 — Map Model and Basic Navigation Add ActiveX file drag-and-drop and end-to-end checks Nov 4, 2026
@pmeems
pmeems merged commit 7ee561c into phase-4-programmatic-navigation Nov 4, 2026
1 check passed
@pmeems
pmeems deleted the phase-6-drag-and-drop-and-end-to-end-testing branch November 4, 2026 12:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant