Fix some issues where an NVDAObject is used where a Window is expected (#15400)
Fixes #15395
Summary of the issue:
There are many instances in NVDA where we implicitly or explicitly (with typing) expect an NVDAObject but code uses properties only available for a NVDAObjects.window.Window.
This is because most objects are Windows and usually these implicit expectations are safe.
This PR attempts to catch some known instances where these expectations are not safe.
Description of user facing changes
Fix error when switching to the secure desktop
Description of development approach
Improve typing and catch some likely cases where a Window should not be expected