debugpy 1.8.5__zip → 1.8.7__zip
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {debugpy-1.8.5/src/debugpy.egg-info → debugpy-1.8.7}/PKG-INFO +1 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_calltip_util.py +19 -21
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_completer.py +30 -30
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_execfile.py +3 -1
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +43 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_getopt.py +35 -32
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_imports_tipper.py +83 -84
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_jy_imports_tipper.py +92 -99
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_log.py +2 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_saved_modules.py +51 -27
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_sys_patch.py +11 -7
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_tipper_common.py +6 -5
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/fsnotify/__init__.py +34 -38
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_console_utils.py +71 -69
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_import_hook.py +1 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_imports.py +0 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console.py +14 -16
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_ipython_console_011.py +81 -93
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_is_thread_alive.py +3 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_localhost.py +9 -8
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_log.py +33 -25
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey.py +183 -170
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey_qt.py +33 -29
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_override.py +6 -4
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_umd.py +19 -18
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/pydev_versioncheck.py +3 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles.py +165 -138
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +77 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_nose.py +35 -36
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel.py +22 -23
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_parallel_client.py +37 -57
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_pytest2.py +54 -52
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_unittest.py +28 -37
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_xml_rpc.py +56 -53
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__main__pydevd_gen_debug_adapter_protocol.py +604 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocol.json +551 -445
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_base_schema.py +25 -29
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +17458 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema_log.py +11 -12
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevconsole_code.py +18 -19
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +41 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +328 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_api.py +263 -214
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_breakpoints.py +7 -10
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils.py +187 -92
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_bytecode_utils_py311.py +105 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_code_to_source.py +46 -51
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_collect_bytecode_info.py +239 -176
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py +370 -297
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm_constants.py +78 -86
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_command_line_handling.py +55 -59
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_concurrency_logger.py +194 -58
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/pydevd_thread_wrappers.py +2 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_console.py +18 -23
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_constants.py +159 -127
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_custom_frames.py +10 -12
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c +55527 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pxd +15 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.pyx +803 -511
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython_wrapper.py +18 -7
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py +32 -24
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_defaults.py +11 -13
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace.py +16 -16
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_dont_trace_files.py +27 -2
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_exec2.py +1 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_api.py +4 -5
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_extension_utils.py +8 -10
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_filtering.py +50 -45
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame.py +462 -407
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_frame_utils.py +69 -61
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_gevent_integration.py +14 -16
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_import_class.py +27 -25
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_io.py +40 -42
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +200 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command.py +20 -19
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_json.py +199 -108
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_net_command_factory_xml.py +121 -73
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +208 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command.py +206 -159
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_process_net_command_json.py +346 -334
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_referrers.py +75 -80
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_reload.py +35 -35
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_resolver.py +116 -124
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py +44 -58
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_safe_repr.py +51 -55
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_save_locals.py +4 -2
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_signature.py +24 -24
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_source_mapping.py +19 -20
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_stackless.py +45 -49
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_suspended_frames.py +61 -58
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_thread_lifecycle.py +23 -13
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_timeout.py +29 -31
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch.py +41 -11
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch_regular.py +117 -55
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_traceproperty.py +11 -14
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_utils.py +90 -89
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vars.py +106 -97
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +40 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_xml.py +56 -46
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_cython_wrapper.py +5 -5
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +71 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.c +11165 -5326
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_tracing.py +5 -6
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_modify_bytecode.py +53 -56
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/bytecode.py +4 -6
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/cfg.py +6 -26
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/concrete.py +7 -21
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/flags.py +5 -24
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/instr.py +10 -34
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/peephole_opt.py +1 -4
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/__init__.py +2 -6
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_bytecode.py +3 -5
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_cfg.py +11 -31
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_code.py +2 -2
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_concrete.py +14 -41
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_flags.py +2 -4
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_instr.py +7 -18
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_misc.py +6 -18
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/test_peephole_opt.py +7 -18
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/bytecode/tests/util_annotation.py +1 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/pydevd_fix_code.py +14 -19
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring.py +1929 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.c +43253 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pxd +46 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring_cython.pyx +1935 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/pydevd_sys_monitoring.py +16 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_app_engine_debug_startup.py +12 -11
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_coverage.py +30 -32
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhook.py +58 -54
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookglut.py +20 -24
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk.py +8 -7
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookgtk3.py +8 -6
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookpyglet.py +11 -8
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt4.py +21 -18
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt5.py +17 -15
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookqt6.py +17 -15
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhooktk.py +6 -4
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/inputhookwx.py +14 -10
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/matplotlibtools.py +30 -26
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +24 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_for_kernel.py +37 -34
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/qt_loaders.py +86 -73
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/version.py +7 -7
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydev_pysrc.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_run_in_console.py +23 -24
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +267 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevconsole.py +55 -47
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd.py +732 -508
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +40 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_check.py +1 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +11 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +75 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py +130 -125
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +89 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_script.py +41 -32
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_utils.hpp +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_version.hpp +9 -1
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.exe +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/lldb_prepare.py +10 -9
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/__init__.py +103 -119
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/breakpoint.py +457 -516
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/compat.py +33 -15
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/crash.py +336 -281
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/debug.py +101 -131
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/disasm.py +148 -153
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/event.py +310 -302
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/interactive.py +235 -208
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/module.py +185 -218
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/process.py +428 -564
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/registry.py +54 -53
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/search.py +69 -73
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/sql.py +158 -170
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/system.py +143 -213
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/textio.py +302 -333
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/thread.py +220 -239
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/util.py +198 -177
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/__init__.py +11 -11
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/advapi32.py +1191 -713
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_amd64.py +248 -194
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/context_i386.py +132 -120
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/dbghelp.py +450 -346
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/defines.py +305 -286
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +526 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/kernel32.py +1479 -1097
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +579 -0
- debugpy-1.8.7/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +3517 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/psapi.py +54 -31
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shell32.py +170 -149
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/shlwapi.py +190 -108
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/user32.py +542 -437
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/version.py +489 -442
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/wtsapi32.py +83 -65
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/window.py +70 -76
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.cpp +17 -9
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/compile_windows.bat +1 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_file_utils.py +141 -120
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/django_debug.py +175 -149
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/__init__.py +1 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_helpers.py +5 -5
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_numpy_types.py +28 -28
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugin_pandas_types.py +22 -30
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/types/pydevd_plugins_django_form_str.py +3 -2
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/jinja2_debug.py +130 -108
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/pydevd_line_validation.py +27 -14
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_tracing.py +85 -66
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/setup_pydevd_cython.py +96 -59
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_version.py +3 -3
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/messaging.py +2 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/cli.py +32 -17
- {debugpy-1.8.5 → debugpy-1.8.7/src/debugpy.egg-info}/PKG-INFO +1 -1
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/SOURCES.txt +6 -1
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydev_bundle/_pydev_filesystem_encoding.py +0 -41
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydev_runfiles/pydev_runfiles_coverage.py +0 -76
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__main__pydevd_gen_debug_adapter_protocol.py +0 -592
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/pydevd_schema.py +0 -19514
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info.py +0 -19
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_additional_thread_info_regular.py +0 -153
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_cython.c +0 -43377
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_json_debug_options.py +0 -204
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_plugin_utils.py +0 -91
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_api.py +0 -62
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_vm_type.py +0 -41
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_eval_main.py +0 -48
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_ipython/qt.py +0 -23
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_pysrc.py +0 -1
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydev_sitecustomize/sitecustomize.py +0 -237
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_always_live_program.py +0 -32
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process.py +0 -9
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/_test_attach_to_process_linux.py +0 -74
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_amd64.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_pydevd.py +0 -79
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/attach_x86.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.exe +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_amd64.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/inject_dll_x86.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_amd64.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.dll +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/run_code_on_dllmain_x86.pdb +0 -0
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/gdi32.py +0 -507
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/ntdll.py +0 -539
- debugpy-1.8.5/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/winappdbg/win32/peb_teb.py +0 -3435
- {debugpy-1.8.5 → debugpy-1.8.7}/DESCRIPTION.md +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/LICENSE +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/MANIFEST.in +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/README.md +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/pyproject.toml +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/setup.cfg +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/setup.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/ThirdPartyNotices.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/__main__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/_pydevd_packaging.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/_util.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/force_pydevd.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_bundle/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydev_runfiles/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/_debug_adapter/debugProtocolCustom.json +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_concurrency_analyser/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/.gitignore +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pxd +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.pyx +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/pydevd_frame_evaluator.template.pyx +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/release_mem.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/README.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/_pydevd_frame_eval/vendored/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/README +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_ipython/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydev_sitecustomize/__not_in_default_pythonpath.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/README.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_310.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_311.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_custom_pyeval_settrace_common.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/py_settrace.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/python.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/common/ref_utils.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/.gitignore +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/attach.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_linux.sh +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_mac.sh +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/linux_and_mac/compile_manylinux.cmd +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/attach.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/inject_dll.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/py_win_helpers.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_in_memory.hpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/run_code_on_dllmain.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.cpp +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/stdafx.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/windows/targetver.h +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/_vendored/pydevd/pydevd_plugins/extensions/README.md +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/__main__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/clients.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/components.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/launchers.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/servers.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/adapter/sessions.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/json.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/log.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/singleton.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/sockets.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/stacks.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/timestamp.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/common/util.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/__main__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/debuggee.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/handlers.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/output.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/launcher/winapi.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/public_api.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/__init__.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/api.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy/server/attach_pid_injected.py +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/dependency_links.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/entry_points.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/src/debugpy.egg-info/top_level.txt +0 -0
- {debugpy-1.8.5 → debugpy-1.8.7}/versioneer.py +0 -0
|
@@ -39,13 +39,14 @@ from winappdbg.win32.version import bits
|
|
|
39
39
|
from winappdbg.win32.kernel32 import GetLastError, SetLastError
|
|
40
40
|
from winappdbg.win32.gdi32 import POINT, PPOINT, LPPOINT, RECT, PRECT, LPRECT
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
# ==============================================================================
|
|
43
43
|
# This is used later on to calculate the list of exported symbols.
|
|
44
44
|
_all = None
|
|
45
45
|
_all = set(vars().keys())
|
|
46
|
-
|
|
46
|
+
# ==============================================================================
|
|
47
|
+
|
|
48
|
+
# --- Helpers ------------------------------------------------------------------
|
|
47
49
|
|
|
48
|
-
#--- Helpers ------------------------------------------------------------------
|
|
49
50
|
|
|
50
51
|
def MAKE_WPARAM(wParam):
|
|
51
52
|
"""
|
|
@@ -58,6 +59,7 @@ def MAKE_WPARAM(wParam):
|
|
|
58
59
|
wParam = 0
|
|
59
60
|
return wParam
|
|
60
61
|
|
|
62
|
+
|
|
61
63
|
def MAKE_LPARAM(lParam):
|
|
62
64
|
"""
|
|
63
65
|
Convert arguments to the LPARAM type.
|
|
@@ -66,281 +68,286 @@ def MAKE_LPARAM(lParam):
|
|
|
66
68
|
"""
|
|
67
69
|
return ctypes.cast(lParam, LPARAM)
|
|
68
70
|
|
|
69
|
-
|
|
71
|
+
|
|
72
|
+
class __WindowEnumerator(object):
|
|
70
73
|
"""
|
|
71
74
|
Window enumerator class. Used internally by the window enumeration APIs.
|
|
72
75
|
"""
|
|
76
|
+
|
|
73
77
|
def __init__(self):
|
|
74
78
|
self.hwnd = list()
|
|
79
|
+
|
|
75
80
|
def __call__(self, hwnd, lParam):
|
|
76
|
-
## print hwnd # XXX DEBUG
|
|
81
|
+
## print hwnd # XXX DEBUG
|
|
77
82
|
self.hwnd.append(hwnd)
|
|
78
83
|
return TRUE
|
|
79
84
|
|
|
80
|
-
|
|
85
|
+
|
|
86
|
+
# --- Types --------------------------------------------------------------------
|
|
81
87
|
|
|
82
88
|
WNDENUMPROC = WINFUNCTYPE(BOOL, HWND, PVOID)
|
|
83
89
|
|
|
84
|
-
|
|
90
|
+
# --- Constants ----------------------------------------------------------------
|
|
85
91
|
|
|
86
|
-
HWND_DESKTOP
|
|
87
|
-
HWND_TOP
|
|
88
|
-
HWND_BOTTOM
|
|
89
|
-
HWND_TOPMOST
|
|
90
|
-
HWND_NOTOPMOST
|
|
91
|
-
HWND_MESSAGE
|
|
92
|
+
HWND_DESKTOP = 0
|
|
93
|
+
HWND_TOP = 1
|
|
94
|
+
HWND_BOTTOM = 1
|
|
95
|
+
HWND_TOPMOST = -1
|
|
96
|
+
HWND_NOTOPMOST = -2
|
|
97
|
+
HWND_MESSAGE = -3
|
|
92
98
|
|
|
93
99
|
# GetWindowLong / SetWindowLong
|
|
94
|
-
GWL_WNDPROC
|
|
95
|
-
GWL_HINSTANCE
|
|
96
|
-
GWL_HWNDPARENT
|
|
97
|
-
GWL_ID
|
|
98
|
-
GWL_STYLE
|
|
99
|
-
GWL_EXSTYLE
|
|
100
|
-
GWL_USERDATA
|
|
100
|
+
GWL_WNDPROC = -4
|
|
101
|
+
GWL_HINSTANCE = -6
|
|
102
|
+
GWL_HWNDPARENT = -8
|
|
103
|
+
GWL_ID = -12
|
|
104
|
+
GWL_STYLE = -16
|
|
105
|
+
GWL_EXSTYLE = -20
|
|
106
|
+
GWL_USERDATA = -21
|
|
101
107
|
|
|
102
108
|
# GetWindowLongPtr / SetWindowLongPtr
|
|
103
|
-
GWLP_WNDPROC
|
|
104
|
-
GWLP_HINSTANCE
|
|
105
|
-
GWLP_HWNDPARENT
|
|
106
|
-
GWLP_STYLE
|
|
107
|
-
GWLP_EXSTYLE
|
|
108
|
-
GWLP_USERDATA
|
|
109
|
-
GWLP_ID
|
|
109
|
+
GWLP_WNDPROC = GWL_WNDPROC
|
|
110
|
+
GWLP_HINSTANCE = GWL_HINSTANCE
|
|
111
|
+
GWLP_HWNDPARENT = GWL_HWNDPARENT
|
|
112
|
+
GWLP_STYLE = GWL_STYLE
|
|
113
|
+
GWLP_EXSTYLE = GWL_EXSTYLE
|
|
114
|
+
GWLP_USERDATA = GWL_USERDATA
|
|
115
|
+
GWLP_ID = GWL_ID
|
|
110
116
|
|
|
111
117
|
# ShowWindow
|
|
112
|
-
SW_HIDE
|
|
113
|
-
SW_SHOWNORMAL
|
|
114
|
-
SW_NORMAL
|
|
115
|
-
SW_SHOWMINIMIZED
|
|
116
|
-
SW_SHOWMAXIMIZED
|
|
117
|
-
SW_MAXIMIZE
|
|
118
|
-
SW_SHOWNOACTIVATE
|
|
119
|
-
SW_SHOW
|
|
120
|
-
SW_MINIMIZE
|
|
121
|
-
SW_SHOWMINNOACTIVE
|
|
122
|
-
SW_SHOWNA
|
|
123
|
-
SW_RESTORE
|
|
124
|
-
SW_SHOWDEFAULT
|
|
125
|
-
SW_FORCEMINIMIZE
|
|
118
|
+
SW_HIDE = 0
|
|
119
|
+
SW_SHOWNORMAL = 1
|
|
120
|
+
SW_NORMAL = 1
|
|
121
|
+
SW_SHOWMINIMIZED = 2
|
|
122
|
+
SW_SHOWMAXIMIZED = 3
|
|
123
|
+
SW_MAXIMIZE = 3
|
|
124
|
+
SW_SHOWNOACTIVATE = 4
|
|
125
|
+
SW_SHOW = 5
|
|
126
|
+
SW_MINIMIZE = 6
|
|
127
|
+
SW_SHOWMINNOACTIVE = 7
|
|
128
|
+
SW_SHOWNA = 8
|
|
129
|
+
SW_RESTORE = 9
|
|
130
|
+
SW_SHOWDEFAULT = 10
|
|
131
|
+
SW_FORCEMINIMIZE = 11
|
|
126
132
|
|
|
127
133
|
# SendMessageTimeout flags
|
|
128
|
-
SMTO_NORMAL
|
|
129
|
-
SMTO_BLOCK
|
|
130
|
-
SMTO_ABORTIFHUNG
|
|
131
|
-
SMTO_NOTIMEOUTIFNOTHUNG
|
|
132
|
-
SMTO_ERRORONEXIT
|
|
134
|
+
SMTO_NORMAL = 0
|
|
135
|
+
SMTO_BLOCK = 1
|
|
136
|
+
SMTO_ABORTIFHUNG = 2
|
|
137
|
+
SMTO_NOTIMEOUTIFNOTHUNG = 8
|
|
138
|
+
SMTO_ERRORONEXIT = 0x20
|
|
133
139
|
|
|
134
140
|
# WINDOWPLACEMENT flags
|
|
135
|
-
WPF_SETMINPOSITION
|
|
136
|
-
WPF_RESTORETOMAXIMIZED
|
|
137
|
-
WPF_ASYNCWINDOWPLACEMENT
|
|
141
|
+
WPF_SETMINPOSITION = 1
|
|
142
|
+
WPF_RESTORETOMAXIMIZED = 2
|
|
143
|
+
WPF_ASYNCWINDOWPLACEMENT = 4
|
|
138
144
|
|
|
139
145
|
# GetAncestor flags
|
|
140
|
-
GA_PARENT
|
|
141
|
-
GA_ROOT
|
|
142
|
-
GA_ROOTOWNER
|
|
146
|
+
GA_PARENT = 1
|
|
147
|
+
GA_ROOT = 2
|
|
148
|
+
GA_ROOTOWNER = 3
|
|
143
149
|
|
|
144
150
|
# GetWindow flags
|
|
145
|
-
GW_HWNDFIRST
|
|
146
|
-
GW_HWNDLAST
|
|
147
|
-
GW_HWNDNEXT
|
|
148
|
-
GW_HWNDPREV
|
|
149
|
-
GW_OWNER
|
|
150
|
-
GW_CHILD
|
|
151
|
-
GW_ENABLEDPOPUP
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
WM_USER
|
|
156
|
-
WM_APP
|
|
157
|
-
|
|
158
|
-
WM_NULL
|
|
159
|
-
WM_CREATE
|
|
160
|
-
WM_DESTROY
|
|
161
|
-
WM_MOVE
|
|
162
|
-
WM_SIZE
|
|
163
|
-
WM_ACTIVATE
|
|
164
|
-
WA_INACTIVE
|
|
165
|
-
WA_ACTIVE
|
|
166
|
-
WA_CLICKACTIVE
|
|
167
|
-
WM_SETFOCUS
|
|
168
|
-
WM_KILLFOCUS
|
|
169
|
-
WM_ENABLE
|
|
170
|
-
WM_SETREDRAW
|
|
171
|
-
WM_SETTEXT
|
|
172
|
-
WM_GETTEXT
|
|
173
|
-
WM_GETTEXTLENGTH
|
|
174
|
-
WM_PAINT
|
|
175
|
-
WM_CLOSE
|
|
176
|
-
WM_QUERYENDSESSION
|
|
177
|
-
WM_QUIT
|
|
178
|
-
WM_QUERYOPEN
|
|
179
|
-
WM_ERASEBKGND
|
|
180
|
-
WM_SYSCOLORCHANGE
|
|
181
|
-
WM_ENDSESSION
|
|
182
|
-
WM_SHOWWINDOW
|
|
183
|
-
WM_WININICHANGE
|
|
184
|
-
WM_SETTINGCHANGE
|
|
185
|
-
WM_DEVMODECHANGE
|
|
186
|
-
WM_ACTIVATEAPP
|
|
187
|
-
WM_FONTCHANGE
|
|
188
|
-
WM_TIMECHANGE
|
|
189
|
-
WM_CANCELMODE
|
|
190
|
-
WM_SETCURSOR
|
|
191
|
-
WM_MOUSEACTIVATE
|
|
192
|
-
WM_CHILDACTIVATE
|
|
193
|
-
WM_QUEUESYNC
|
|
194
|
-
WM_GETMINMAXINFO
|
|
195
|
-
WM_PAINTICON
|
|
196
|
-
WM_ICONERASEBKGND
|
|
197
|
-
WM_NEXTDLGCTL
|
|
198
|
-
WM_SPOOLERSTATUS
|
|
199
|
-
WM_DRAWITEM
|
|
200
|
-
WM_MEASUREITEM
|
|
201
|
-
WM_DELETEITEM
|
|
202
|
-
WM_VKEYTOITEM
|
|
203
|
-
WM_CHARTOITEM
|
|
204
|
-
WM_SETFONT
|
|
205
|
-
WM_GETFONT
|
|
206
|
-
WM_SETHOTKEY
|
|
207
|
-
WM_GETHOTKEY
|
|
208
|
-
WM_QUERYDRAGICON
|
|
209
|
-
WM_COMPAREITEM
|
|
210
|
-
WM_GETOBJECT
|
|
211
|
-
WM_COMPACTING
|
|
212
|
-
WM_OTHERWINDOWCREATED
|
|
213
|
-
WM_OTHERWINDOWDESTROYED
|
|
214
|
-
WM_COMMNOTIFY
|
|
215
|
-
|
|
216
|
-
CN_RECEIVE
|
|
217
|
-
CN_TRANSMIT
|
|
218
|
-
CN_EVENT
|
|
219
|
-
|
|
220
|
-
WM_WINDOWPOSCHANGING
|
|
221
|
-
WM_WINDOWPOSCHANGED
|
|
222
|
-
WM_POWER
|
|
223
|
-
|
|
224
|
-
PWR_OK
|
|
225
|
-
PWR_FAIL
|
|
226
|
-
PWR_SUSPENDREQUEST
|
|
227
|
-
PWR_SUSPENDRESUME
|
|
228
|
-
PWR_CRITICALRESUME
|
|
229
|
-
|
|
230
|
-
WM_COPYDATA
|
|
231
|
-
WM_CANCELJOURNAL
|
|
232
|
-
WM_NOTIFY
|
|
233
|
-
WM_INPUTLANGCHANGEREQUEST
|
|
234
|
-
WM_INPUTLANGCHANGE
|
|
235
|
-
WM_TCARD
|
|
236
|
-
WM_HELP
|
|
237
|
-
WM_USERCHANGED
|
|
238
|
-
WM_NOTIFYFORMAT
|
|
239
|
-
WM_CONTEXTMENU
|
|
240
|
-
WM_STYLECHANGING
|
|
241
|
-
WM_STYLECHANGED
|
|
242
|
-
WM_DISPLAYCHANGE
|
|
243
|
-
WM_GETICON
|
|
244
|
-
WM_SETICON
|
|
245
|
-
WM_NCCREATE
|
|
246
|
-
WM_NCDESTROY
|
|
247
|
-
WM_NCCALCSIZE
|
|
248
|
-
WM_NCHITTEST
|
|
249
|
-
WM_NCPAINT
|
|
250
|
-
WM_NCACTIVATE
|
|
251
|
-
WM_GETDLGCODE
|
|
252
|
-
WM_SYNCPAINT
|
|
253
|
-
WM_NCMOUSEMOVE
|
|
254
|
-
WM_NCLBUTTONDOWN
|
|
255
|
-
WM_NCLBUTTONUP
|
|
256
|
-
WM_NCLBUTTONDBLCLK
|
|
257
|
-
WM_NCRBUTTONDOWN
|
|
258
|
-
WM_NCRBUTTONUP
|
|
259
|
-
WM_NCRBUTTONDBLCLK
|
|
260
|
-
WM_NCMBUTTONDOWN
|
|
261
|
-
WM_NCMBUTTONUP
|
|
262
|
-
WM_NCMBUTTONDBLCLK
|
|
263
|
-
WM_KEYFIRST
|
|
264
|
-
WM_KEYDOWN
|
|
265
|
-
WM_KEYUP
|
|
266
|
-
WM_CHAR
|
|
267
|
-
WM_DEADCHAR
|
|
268
|
-
WM_SYSKEYDOWN
|
|
269
|
-
WM_SYSKEYUP
|
|
270
|
-
WM_SYSCHAR
|
|
271
|
-
WM_SYSDEADCHAR
|
|
272
|
-
WM_KEYLAST
|
|
273
|
-
WM_INITDIALOG
|
|
274
|
-
WM_COMMAND
|
|
275
|
-
WM_SYSCOMMAND
|
|
276
|
-
WM_TIMER
|
|
277
|
-
WM_HSCROLL
|
|
278
|
-
WM_VSCROLL
|
|
279
|
-
WM_INITMENU
|
|
280
|
-
WM_INITMENUPOPUP
|
|
281
|
-
WM_MENUSELECT
|
|
282
|
-
WM_MENUCHAR
|
|
283
|
-
WM_ENTERIDLE
|
|
284
|
-
WM_CTLCOLORMSGBOX
|
|
285
|
-
WM_CTLCOLOREDIT
|
|
286
|
-
WM_CTLCOLORLISTBOX
|
|
287
|
-
WM_CTLCOLORBTN
|
|
288
|
-
WM_CTLCOLORDLG
|
|
289
|
-
WM_CTLCOLORSCROLLBAR
|
|
290
|
-
WM_CTLCOLORSTATIC
|
|
291
|
-
WM_MOUSEFIRST
|
|
292
|
-
WM_MOUSEMOVE
|
|
293
|
-
WM_LBUTTONDOWN
|
|
294
|
-
WM_LBUTTONUP
|
|
295
|
-
WM_LBUTTONDBLCLK
|
|
296
|
-
WM_RBUTTONDOWN
|
|
297
|
-
WM_RBUTTONUP
|
|
298
|
-
WM_RBUTTONDBLCLK
|
|
299
|
-
WM_MBUTTONDOWN
|
|
300
|
-
WM_MBUTTONUP
|
|
301
|
-
WM_MBUTTONDBLCLK
|
|
302
|
-
WM_MOUSELAST
|
|
303
|
-
WM_PARENTNOTIFY
|
|
304
|
-
WM_ENTERMENULOOP
|
|
305
|
-
WM_EXITMENULOOP
|
|
306
|
-
WM_MDICREATE
|
|
307
|
-
WM_MDIDESTROY
|
|
308
|
-
WM_MDIACTIVATE
|
|
309
|
-
WM_MDIRESTORE
|
|
310
|
-
WM_MDINEXT
|
|
311
|
-
WM_MDIMAXIMIZE
|
|
312
|
-
WM_MDITILE
|
|
313
|
-
WM_MDICASCADE
|
|
314
|
-
WM_MDIICONARRANGE
|
|
315
|
-
WM_MDIGETACTIVE
|
|
316
|
-
WM_MDISETMENU
|
|
317
|
-
WM_DROPFILES
|
|
318
|
-
WM_MDIREFRESHMENU
|
|
319
|
-
WM_CUT
|
|
320
|
-
WM_COPY
|
|
321
|
-
WM_PASTE
|
|
322
|
-
WM_CLEAR
|
|
323
|
-
WM_UNDO
|
|
324
|
-
WM_RENDERFORMAT
|
|
325
|
-
WM_RENDERALLFORMATS
|
|
326
|
-
WM_DESTROYCLIPBOARD
|
|
327
|
-
WM_DRAWCLIPBOARD
|
|
328
|
-
WM_PAINTCLIPBOARD
|
|
329
|
-
WM_VSCROLLCLIPBOARD
|
|
330
|
-
WM_SIZECLIPBOARD
|
|
331
|
-
WM_ASKCBFORMATNAME
|
|
332
|
-
WM_CHANGECBCHAIN
|
|
333
|
-
WM_HSCROLLCLIPBOARD
|
|
334
|
-
WM_QUERYNEWPALETTE
|
|
335
|
-
WM_PALETTEISCHANGING
|
|
336
|
-
WM_PALETTECHANGED
|
|
337
|
-
WM_HOTKEY
|
|
338
|
-
WM_PRINT
|
|
339
|
-
WM_PRINTCLIENT
|
|
340
|
-
WM_PENWINFIRST
|
|
341
|
-
WM_PENWINLAST
|
|
342
|
-
|
|
343
|
-
|
|
151
|
+
GW_HWNDFIRST = 0
|
|
152
|
+
GW_HWNDLAST = 1
|
|
153
|
+
GW_HWNDNEXT = 2
|
|
154
|
+
GW_HWNDPREV = 3
|
|
155
|
+
GW_OWNER = 4
|
|
156
|
+
GW_CHILD = 5
|
|
157
|
+
GW_ENABLEDPOPUP = 6
|
|
158
|
+
|
|
159
|
+
# --- Window messages ----------------------------------------------------------
|
|
160
|
+
|
|
161
|
+
WM_USER = 0x400
|
|
162
|
+
WM_APP = 0x800
|
|
163
|
+
|
|
164
|
+
WM_NULL = 0
|
|
165
|
+
WM_CREATE = 1
|
|
166
|
+
WM_DESTROY = 2
|
|
167
|
+
WM_MOVE = 3
|
|
168
|
+
WM_SIZE = 5
|
|
169
|
+
WM_ACTIVATE = 6
|
|
170
|
+
WA_INACTIVE = 0
|
|
171
|
+
WA_ACTIVE = 1
|
|
172
|
+
WA_CLICKACTIVE = 2
|
|
173
|
+
WM_SETFOCUS = 7
|
|
174
|
+
WM_KILLFOCUS = 8
|
|
175
|
+
WM_ENABLE = 0x0A
|
|
176
|
+
WM_SETREDRAW = 0x0B
|
|
177
|
+
WM_SETTEXT = 0x0C
|
|
178
|
+
WM_GETTEXT = 0x0D
|
|
179
|
+
WM_GETTEXTLENGTH = 0x0E
|
|
180
|
+
WM_PAINT = 0x0F
|
|
181
|
+
WM_CLOSE = 0x10
|
|
182
|
+
WM_QUERYENDSESSION = 0x11
|
|
183
|
+
WM_QUIT = 0x12
|
|
184
|
+
WM_QUERYOPEN = 0x13
|
|
185
|
+
WM_ERASEBKGND = 0x14
|
|
186
|
+
WM_SYSCOLORCHANGE = 0x15
|
|
187
|
+
WM_ENDSESSION = 0x16
|
|
188
|
+
WM_SHOWWINDOW = 0x18
|
|
189
|
+
WM_WININICHANGE = 0x1A
|
|
190
|
+
WM_SETTINGCHANGE = WM_WININICHANGE
|
|
191
|
+
WM_DEVMODECHANGE = 0x1B
|
|
192
|
+
WM_ACTIVATEAPP = 0x1C
|
|
193
|
+
WM_FONTCHANGE = 0x1D
|
|
194
|
+
WM_TIMECHANGE = 0x1E
|
|
195
|
+
WM_CANCELMODE = 0x1F
|
|
196
|
+
WM_SETCURSOR = 0x20
|
|
197
|
+
WM_MOUSEACTIVATE = 0x21
|
|
198
|
+
WM_CHILDACTIVATE = 0x22
|
|
199
|
+
WM_QUEUESYNC = 0x23
|
|
200
|
+
WM_GETMINMAXINFO = 0x24
|
|
201
|
+
WM_PAINTICON = 0x26
|
|
202
|
+
WM_ICONERASEBKGND = 0x27
|
|
203
|
+
WM_NEXTDLGCTL = 0x28
|
|
204
|
+
WM_SPOOLERSTATUS = 0x2A
|
|
205
|
+
WM_DRAWITEM = 0x2B
|
|
206
|
+
WM_MEASUREITEM = 0x2C
|
|
207
|
+
WM_DELETEITEM = 0x2D
|
|
208
|
+
WM_VKEYTOITEM = 0x2E
|
|
209
|
+
WM_CHARTOITEM = 0x2F
|
|
210
|
+
WM_SETFONT = 0x30
|
|
211
|
+
WM_GETFONT = 0x31
|
|
212
|
+
WM_SETHOTKEY = 0x32
|
|
213
|
+
WM_GETHOTKEY = 0x33
|
|
214
|
+
WM_QUERYDRAGICON = 0x37
|
|
215
|
+
WM_COMPAREITEM = 0x39
|
|
216
|
+
WM_GETOBJECT = 0x3D
|
|
217
|
+
WM_COMPACTING = 0x41
|
|
218
|
+
WM_OTHERWINDOWCREATED = 0x42
|
|
219
|
+
WM_OTHERWINDOWDESTROYED = 0x43
|
|
220
|
+
WM_COMMNOTIFY = 0x44
|
|
221
|
+
|
|
222
|
+
CN_RECEIVE = 0x1
|
|
223
|
+
CN_TRANSMIT = 0x2
|
|
224
|
+
CN_EVENT = 0x4
|
|
225
|
+
|
|
226
|
+
WM_WINDOWPOSCHANGING = 0x46
|
|
227
|
+
WM_WINDOWPOSCHANGED = 0x47
|
|
228
|
+
WM_POWER = 0x48
|
|
229
|
+
|
|
230
|
+
PWR_OK = 1
|
|
231
|
+
PWR_FAIL = -1
|
|
232
|
+
PWR_SUSPENDREQUEST = 1
|
|
233
|
+
PWR_SUSPENDRESUME = 2
|
|
234
|
+
PWR_CRITICALRESUME = 3
|
|
235
|
+
|
|
236
|
+
WM_COPYDATA = 0x4A
|
|
237
|
+
WM_CANCELJOURNAL = 0x4B
|
|
238
|
+
WM_NOTIFY = 0x4E
|
|
239
|
+
WM_INPUTLANGCHANGEREQUEST = 0x50
|
|
240
|
+
WM_INPUTLANGCHANGE = 0x51
|
|
241
|
+
WM_TCARD = 0x52
|
|
242
|
+
WM_HELP = 0x53
|
|
243
|
+
WM_USERCHANGED = 0x54
|
|
244
|
+
WM_NOTIFYFORMAT = 0x55
|
|
245
|
+
WM_CONTEXTMENU = 0x7B
|
|
246
|
+
WM_STYLECHANGING = 0x7C
|
|
247
|
+
WM_STYLECHANGED = 0x7D
|
|
248
|
+
WM_DISPLAYCHANGE = 0x7E
|
|
249
|
+
WM_GETICON = 0x7F
|
|
250
|
+
WM_SETICON = 0x80
|
|
251
|
+
WM_NCCREATE = 0x81
|
|
252
|
+
WM_NCDESTROY = 0x82
|
|
253
|
+
WM_NCCALCSIZE = 0x83
|
|
254
|
+
WM_NCHITTEST = 0x84
|
|
255
|
+
WM_NCPAINT = 0x85
|
|
256
|
+
WM_NCACTIVATE = 0x86
|
|
257
|
+
WM_GETDLGCODE = 0x87
|
|
258
|
+
WM_SYNCPAINT = 0x88
|
|
259
|
+
WM_NCMOUSEMOVE = 0x0A0
|
|
260
|
+
WM_NCLBUTTONDOWN = 0x0A1
|
|
261
|
+
WM_NCLBUTTONUP = 0x0A2
|
|
262
|
+
WM_NCLBUTTONDBLCLK = 0x0A3
|
|
263
|
+
WM_NCRBUTTONDOWN = 0x0A4
|
|
264
|
+
WM_NCRBUTTONUP = 0x0A5
|
|
265
|
+
WM_NCRBUTTONDBLCLK = 0x0A6
|
|
266
|
+
WM_NCMBUTTONDOWN = 0x0A7
|
|
267
|
+
WM_NCMBUTTONUP = 0x0A8
|
|
268
|
+
WM_NCMBUTTONDBLCLK = 0x0A9
|
|
269
|
+
WM_KEYFIRST = 0x100
|
|
270
|
+
WM_KEYDOWN = 0x100
|
|
271
|
+
WM_KEYUP = 0x101
|
|
272
|
+
WM_CHAR = 0x102
|
|
273
|
+
WM_DEADCHAR = 0x103
|
|
274
|
+
WM_SYSKEYDOWN = 0x104
|
|
275
|
+
WM_SYSKEYUP = 0x105
|
|
276
|
+
WM_SYSCHAR = 0x106
|
|
277
|
+
WM_SYSDEADCHAR = 0x107
|
|
278
|
+
WM_KEYLAST = 0x108
|
|
279
|
+
WM_INITDIALOG = 0x110
|
|
280
|
+
WM_COMMAND = 0x111
|
|
281
|
+
WM_SYSCOMMAND = 0x112
|
|
282
|
+
WM_TIMER = 0x113
|
|
283
|
+
WM_HSCROLL = 0x114
|
|
284
|
+
WM_VSCROLL = 0x115
|
|
285
|
+
WM_INITMENU = 0x116
|
|
286
|
+
WM_INITMENUPOPUP = 0x117
|
|
287
|
+
WM_MENUSELECT = 0x11F
|
|
288
|
+
WM_MENUCHAR = 0x120
|
|
289
|
+
WM_ENTERIDLE = 0x121
|
|
290
|
+
WM_CTLCOLORMSGBOX = 0x132
|
|
291
|
+
WM_CTLCOLOREDIT = 0x133
|
|
292
|
+
WM_CTLCOLORLISTBOX = 0x134
|
|
293
|
+
WM_CTLCOLORBTN = 0x135
|
|
294
|
+
WM_CTLCOLORDLG = 0x136
|
|
295
|
+
WM_CTLCOLORSCROLLBAR = 0x137
|
|
296
|
+
WM_CTLCOLORSTATIC = 0x138
|
|
297
|
+
WM_MOUSEFIRST = 0x200
|
|
298
|
+
WM_MOUSEMOVE = 0x200
|
|
299
|
+
WM_LBUTTONDOWN = 0x201
|
|
300
|
+
WM_LBUTTONUP = 0x202
|
|
301
|
+
WM_LBUTTONDBLCLK = 0x203
|
|
302
|
+
WM_RBUTTONDOWN = 0x204
|
|
303
|
+
WM_RBUTTONUP = 0x205
|
|
304
|
+
WM_RBUTTONDBLCLK = 0x206
|
|
305
|
+
WM_MBUTTONDOWN = 0x207
|
|
306
|
+
WM_MBUTTONUP = 0x208
|
|
307
|
+
WM_MBUTTONDBLCLK = 0x209
|
|
308
|
+
WM_MOUSELAST = 0x209
|
|
309
|
+
WM_PARENTNOTIFY = 0x210
|
|
310
|
+
WM_ENTERMENULOOP = 0x211
|
|
311
|
+
WM_EXITMENULOOP = 0x212
|
|
312
|
+
WM_MDICREATE = 0x220
|
|
313
|
+
WM_MDIDESTROY = 0x221
|
|
314
|
+
WM_MDIACTIVATE = 0x222
|
|
315
|
+
WM_MDIRESTORE = 0x223
|
|
316
|
+
WM_MDINEXT = 0x224
|
|
317
|
+
WM_MDIMAXIMIZE = 0x225
|
|
318
|
+
WM_MDITILE = 0x226
|
|
319
|
+
WM_MDICASCADE = 0x227
|
|
320
|
+
WM_MDIICONARRANGE = 0x228
|
|
321
|
+
WM_MDIGETACTIVE = 0x229
|
|
322
|
+
WM_MDISETMENU = 0x230
|
|
323
|
+
WM_DROPFILES = 0x233
|
|
324
|
+
WM_MDIREFRESHMENU = 0x234
|
|
325
|
+
WM_CUT = 0x300
|
|
326
|
+
WM_COPY = 0x301
|
|
327
|
+
WM_PASTE = 0x302
|
|
328
|
+
WM_CLEAR = 0x303
|
|
329
|
+
WM_UNDO = 0x304
|
|
330
|
+
WM_RENDERFORMAT = 0x305
|
|
331
|
+
WM_RENDERALLFORMATS = 0x306
|
|
332
|
+
WM_DESTROYCLIPBOARD = 0x307
|
|
333
|
+
WM_DRAWCLIPBOARD = 0x308
|
|
334
|
+
WM_PAINTCLIPBOARD = 0x309
|
|
335
|
+
WM_VSCROLLCLIPBOARD = 0x30A
|
|
336
|
+
WM_SIZECLIPBOARD = 0x30B
|
|
337
|
+
WM_ASKCBFORMATNAME = 0x30C
|
|
338
|
+
WM_CHANGECBCHAIN = 0x30D
|
|
339
|
+
WM_HSCROLLCLIPBOARD = 0x30E
|
|
340
|
+
WM_QUERYNEWPALETTE = 0x30F
|
|
341
|
+
WM_PALETTEISCHANGING = 0x310
|
|
342
|
+
WM_PALETTECHANGED = 0x311
|
|
343
|
+
WM_HOTKEY = 0x312
|
|
344
|
+
WM_PRINT = 0x317
|
|
345
|
+
WM_PRINTCLIENT = 0x318
|
|
346
|
+
WM_PENWINFIRST = 0x380
|
|
347
|
+
WM_PENWINLAST = 0x38F
|
|
348
|
+
|
|
349
|
+
# --- Structures ---------------------------------------------------------------
|
|
350
|
+
|
|
344
351
|
|
|
345
352
|
# typedef struct _WINDOWPLACEMENT {
|
|
346
353
|
# UINT length;
|
|
@@ -352,16 +359,19 @@ WM_PENWINLAST = 0x38F
|
|
|
352
359
|
# } WINDOWPLACEMENT;
|
|
353
360
|
class WINDOWPLACEMENT(Structure):
|
|
354
361
|
_fields_ = [
|
|
355
|
-
(
|
|
356
|
-
(
|
|
357
|
-
(
|
|
358
|
-
(
|
|
359
|
-
(
|
|
360
|
-
(
|
|
362
|
+
("length", UINT),
|
|
363
|
+
("flags", UINT),
|
|
364
|
+
("showCmd", UINT),
|
|
365
|
+
("ptMinPosition", POINT),
|
|
366
|
+
("ptMaxPosition", POINT),
|
|
367
|
+
("rcNormalPosition", RECT),
|
|
361
368
|
]
|
|
362
|
-
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
PWINDOWPLACEMENT = POINTER(WINDOWPLACEMENT)
|
|
363
372
|
LPWINDOWPLACEMENT = PWINDOWPLACEMENT
|
|
364
373
|
|
|
374
|
+
|
|
365
375
|
# typedef struct tagGUITHREADINFO {
|
|
366
376
|
# DWORD cbSize;
|
|
367
377
|
# DWORD flags;
|
|
@@ -375,20 +385,22 @@ LPWINDOWPLACEMENT = PWINDOWPLACEMENT
|
|
|
375
385
|
# } GUITHREADINFO, *PGUITHREADINFO;
|
|
376
386
|
class GUITHREADINFO(Structure):
|
|
377
387
|
_fields_ = [
|
|
378
|
-
(
|
|
379
|
-
(
|
|
380
|
-
(
|
|
381
|
-
(
|
|
382
|
-
(
|
|
383
|
-
(
|
|
384
|
-
(
|
|
385
|
-
(
|
|
386
|
-
(
|
|
388
|
+
("cbSize", DWORD),
|
|
389
|
+
("flags", DWORD),
|
|
390
|
+
("hwndActive", HWND),
|
|
391
|
+
("hwndFocus", HWND),
|
|
392
|
+
("hwndCapture", HWND),
|
|
393
|
+
("hwndMenuOwner", HWND),
|
|
394
|
+
("hwndMoveSize", HWND),
|
|
395
|
+
("hwndCaret", HWND),
|
|
396
|
+
("rcCaret", RECT),
|
|
387
397
|
]
|
|
388
|
-
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
PGUITHREADINFO = POINTER(GUITHREADINFO)
|
|
389
401
|
LPGUITHREADINFO = PGUITHREADINFO
|
|
390
402
|
|
|
391
|
-
|
|
403
|
+
# --- High level classes -------------------------------------------------------
|
|
392
404
|
|
|
393
405
|
# Point() and Rect() are here instead of gdi32.py because they were mainly
|
|
394
406
|
# created to handle window coordinates rather than drawing on the screen.
|
|
@@ -396,6 +408,7 @@ LPGUITHREADINFO = PGUITHREADINFO
|
|
|
396
408
|
# XXX not sure if these classes should be psyco-optimized,
|
|
397
409
|
# it may not work if the user wants to serialize them for some reason
|
|
398
410
|
|
|
411
|
+
|
|
399
412
|
class Point(object):
|
|
400
413
|
"""
|
|
401
414
|
Python wrapper over the L{POINT} class.
|
|
@@ -406,7 +419,7 @@ class Point(object):
|
|
|
406
419
|
@ivar y: Vertical coordinate
|
|
407
420
|
"""
|
|
408
421
|
|
|
409
|
-
def __init__(self, x
|
|
422
|
+
def __init__(self, x=0, y=0):
|
|
410
423
|
"""
|
|
411
424
|
@see: L{POINT}
|
|
412
425
|
@type x: int
|
|
@@ -424,10 +437,10 @@ class Point(object):
|
|
|
424
437
|
return 2
|
|
425
438
|
|
|
426
439
|
def __getitem__(self, index):
|
|
427
|
-
return (self.x, self.y)
|
|
440
|
+
return (self.x, self.y)[index]
|
|
428
441
|
|
|
429
442
|
def __setitem__(self, index, value):
|
|
430
|
-
if
|
|
443
|
+
if index == 0:
|
|
431
444
|
self.x = value
|
|
432
445
|
elif index == 1:
|
|
433
446
|
self.y = value
|
|
@@ -470,7 +483,7 @@ class Point(object):
|
|
|
470
483
|
"""
|
|
471
484
|
return ClientToScreen(hWnd, self)
|
|
472
485
|
|
|
473
|
-
def translate(self, hWndFrom
|
|
486
|
+
def translate(self, hWndFrom=HWND_DESKTOP, hWndTo=HWND_DESKTOP):
|
|
474
487
|
"""
|
|
475
488
|
Translate coordinates from one window to another.
|
|
476
489
|
|
|
@@ -492,6 +505,7 @@ class Point(object):
|
|
|
492
505
|
"""
|
|
493
506
|
return MapWindowPoints(hWndFrom, hWndTo, [self])
|
|
494
507
|
|
|
508
|
+
|
|
495
509
|
class Rect(object):
|
|
496
510
|
"""
|
|
497
511
|
Python wrapper over the L{RECT} class.
|
|
@@ -511,7 +525,7 @@ class Rect(object):
|
|
|
511
525
|
@ivar height: Height in pixels. Same as C{bottom - top}.
|
|
512
526
|
"""
|
|
513
527
|
|
|
514
|
-
def __init__(self, left
|
|
528
|
+
def __init__(self, left=0, top=0, right=0, bottom=0):
|
|
515
529
|
"""
|
|
516
530
|
@see: L{RECT}
|
|
517
531
|
@type left: int
|
|
@@ -523,9 +537,9 @@ class Rect(object):
|
|
|
523
537
|
@type bottom: int
|
|
524
538
|
@param bottom: Vertical coordinate for the bottom right corner.
|
|
525
539
|
"""
|
|
526
|
-
self.left
|
|
527
|
-
self.top
|
|
528
|
-
self.right
|
|
540
|
+
self.left = left
|
|
541
|
+
self.top = top
|
|
542
|
+
self.right = right
|
|
529
543
|
self.bottom = bottom
|
|
530
544
|
|
|
531
545
|
def __iter__(self):
|
|
@@ -535,15 +549,15 @@ class Rect(object):
|
|
|
535
549
|
return 2
|
|
536
550
|
|
|
537
551
|
def __getitem__(self, index):
|
|
538
|
-
return (self.left, self.top, self.right, self.bottom)
|
|
552
|
+
return (self.left, self.top, self.right, self.bottom)[index]
|
|
539
553
|
|
|
540
554
|
def __setitem__(self, index, value):
|
|
541
|
-
if
|
|
542
|
-
self.left
|
|
555
|
+
if index == 0:
|
|
556
|
+
self.left = value
|
|
543
557
|
elif index == 1:
|
|
544
|
-
self.top
|
|
558
|
+
self.top = value
|
|
545
559
|
elif index == 2:
|
|
546
|
-
self.right
|
|
560
|
+
self.right = value
|
|
547
561
|
elif index == 3:
|
|
548
562
|
self.bottom = value
|
|
549
563
|
else:
|
|
@@ -569,7 +583,7 @@ class Rect(object):
|
|
|
569
583
|
def __set_height(self, value):
|
|
570
584
|
self.bottom = value - self.top
|
|
571
585
|
|
|
572
|
-
width
|
|
586
|
+
width = property(__get_width, __set_width)
|
|
573
587
|
height = property(__get_height, __set_height)
|
|
574
588
|
|
|
575
589
|
def screen_to_client(self, hWnd):
|
|
@@ -584,9 +598,9 @@ class Rect(object):
|
|
|
584
598
|
@rtype: L{Rect}
|
|
585
599
|
@return: New object containing the translated coordinates.
|
|
586
600
|
"""
|
|
587
|
-
topleft
|
|
601
|
+
topleft = ScreenToClient(hWnd, (self.left, self.top))
|
|
588
602
|
bottomright = ScreenToClient(hWnd, (self.bottom, self.right))
|
|
589
|
-
return Rect(
|
|
603
|
+
return Rect(topleft.x, topleft.y, bottomright.x, bottomright.y)
|
|
590
604
|
|
|
591
605
|
def client_to_screen(self, hWnd):
|
|
592
606
|
"""
|
|
@@ -600,11 +614,11 @@ class Rect(object):
|
|
|
600
614
|
@rtype: L{Rect}
|
|
601
615
|
@return: New object containing the translated coordinates.
|
|
602
616
|
"""
|
|
603
|
-
topleft
|
|
617
|
+
topleft = ClientToScreen(hWnd, (self.left, self.top))
|
|
604
618
|
bottomright = ClientToScreen(hWnd, (self.bottom, self.right))
|
|
605
|
-
return Rect(
|
|
619
|
+
return Rect(topleft.x, topleft.y, bottomright.x, bottomright.y)
|
|
606
620
|
|
|
607
|
-
def translate(self, hWndFrom
|
|
621
|
+
def translate(self, hWndFrom=HWND_DESKTOP, hWndTo=HWND_DESKTOP):
|
|
608
622
|
"""
|
|
609
623
|
Translate coordinates from one window to another.
|
|
610
624
|
|
|
@@ -621,39 +635,40 @@ class Rect(object):
|
|
|
621
635
|
@rtype: L{Rect}
|
|
622
636
|
@return: New object containing the translated coordinates.
|
|
623
637
|
"""
|
|
624
|
-
points = [
|
|
638
|
+
points = [(self.left, self.top), (self.right, self.bottom)]
|
|
625
639
|
return MapWindowPoints(hWndFrom, hWndTo, points)
|
|
626
640
|
|
|
641
|
+
|
|
627
642
|
class WindowPlacement(object):
|
|
628
643
|
"""
|
|
629
644
|
Python wrapper over the L{WINDOWPLACEMENT} class.
|
|
630
645
|
"""
|
|
631
646
|
|
|
632
|
-
def __init__(self, wp
|
|
647
|
+
def __init__(self, wp=None):
|
|
633
648
|
"""
|
|
634
649
|
@type wp: L{WindowPlacement} or L{WINDOWPLACEMENT}
|
|
635
650
|
@param wp: Another window placement object.
|
|
636
651
|
"""
|
|
637
652
|
|
|
638
653
|
# Initialize all properties with empty values.
|
|
639
|
-
self.flags
|
|
640
|
-
self.showCmd
|
|
641
|
-
self.ptMinPosition
|
|
642
|
-
self.ptMaxPosition
|
|
654
|
+
self.flags = 0
|
|
655
|
+
self.showCmd = 0
|
|
656
|
+
self.ptMinPosition = Point()
|
|
657
|
+
self.ptMaxPosition = Point()
|
|
643
658
|
self.rcNormalPosition = Rect()
|
|
644
659
|
|
|
645
660
|
# If a window placement was given copy it's properties.
|
|
646
661
|
if wp:
|
|
647
|
-
self.flags
|
|
648
|
-
self.showCmd
|
|
649
|
-
self.ptMinPosition
|
|
650
|
-
self.ptMaxPosition
|
|
662
|
+
self.flags = wp.flags
|
|
663
|
+
self.showCmd = wp.showCmd
|
|
664
|
+
self.ptMinPosition = Point(wp.ptMinPosition.x, wp.ptMinPosition.y)
|
|
665
|
+
self.ptMaxPosition = Point(wp.ptMaxPosition.x, wp.ptMaxPosition.y)
|
|
651
666
|
self.rcNormalPosition = Rect(
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
667
|
+
wp.rcNormalPosition.left,
|
|
668
|
+
wp.rcNormalPosition.top,
|
|
669
|
+
wp.rcNormalPosition.right,
|
|
670
|
+
wp.rcNormalPosition.bottom,
|
|
671
|
+
)
|
|
657
672
|
|
|
658
673
|
@property
|
|
659
674
|
def _as_parameter_(self):
|
|
@@ -661,40 +676,43 @@ class WindowPlacement(object):
|
|
|
661
676
|
Compatibility with ctypes.
|
|
662
677
|
Allows passing transparently a Point object to an API call.
|
|
663
678
|
"""
|
|
664
|
-
wp
|
|
665
|
-
wp.length
|
|
666
|
-
wp.flags
|
|
667
|
-
wp.showCmd
|
|
668
|
-
wp.ptMinPosition.x
|
|
669
|
-
wp.ptMinPosition.y
|
|
670
|
-
wp.ptMaxPosition.x
|
|
671
|
-
wp.ptMaxPosition.y
|
|
672
|
-
wp.rcNormalPosition.left
|
|
673
|
-
wp.rcNormalPosition.top
|
|
674
|
-
wp.rcNormalPosition.right
|
|
675
|
-
wp.rcNormalPosition.bottom
|
|
679
|
+
wp = WINDOWPLACEMENT()
|
|
680
|
+
wp.length = sizeof(wp)
|
|
681
|
+
wp.flags = self.flags
|
|
682
|
+
wp.showCmd = self.showCmd
|
|
683
|
+
wp.ptMinPosition.x = self.ptMinPosition.x
|
|
684
|
+
wp.ptMinPosition.y = self.ptMinPosition.y
|
|
685
|
+
wp.ptMaxPosition.x = self.ptMaxPosition.x
|
|
686
|
+
wp.ptMaxPosition.y = self.ptMaxPosition.y
|
|
687
|
+
wp.rcNormalPosition.left = self.rcNormalPosition.left
|
|
688
|
+
wp.rcNormalPosition.top = self.rcNormalPosition.top
|
|
689
|
+
wp.rcNormalPosition.right = self.rcNormalPosition.right
|
|
690
|
+
wp.rcNormalPosition.bottom = self.rcNormalPosition.bottom
|
|
676
691
|
return wp
|
|
677
692
|
|
|
678
|
-
|
|
693
|
+
|
|
694
|
+
# --- user32.dll ---------------------------------------------------------------
|
|
695
|
+
|
|
679
696
|
|
|
680
697
|
# void WINAPI SetLastErrorEx(
|
|
681
698
|
# __in DWORD dwErrCode,
|
|
682
699
|
# __in DWORD dwType
|
|
683
700
|
# );
|
|
684
|
-
def SetLastErrorEx(dwErrCode, dwType
|
|
701
|
+
def SetLastErrorEx(dwErrCode, dwType=0):
|
|
685
702
|
_SetLastErrorEx = windll.user32.SetLastErrorEx
|
|
686
703
|
_SetLastErrorEx.argtypes = [DWORD, DWORD]
|
|
687
|
-
_SetLastErrorEx.restype
|
|
704
|
+
_SetLastErrorEx.restype = None
|
|
688
705
|
_SetLastErrorEx(dwErrCode, dwType)
|
|
689
706
|
|
|
707
|
+
|
|
690
708
|
# HWND FindWindow(
|
|
691
709
|
# LPCTSTR lpClassName,
|
|
692
710
|
# LPCTSTR lpWindowName
|
|
693
711
|
# );
|
|
694
|
-
def FindWindowA(lpClassName
|
|
712
|
+
def FindWindowA(lpClassName=None, lpWindowName=None):
|
|
695
713
|
_FindWindowA = windll.user32.FindWindowA
|
|
696
714
|
_FindWindowA.argtypes = [LPSTR, LPSTR]
|
|
697
|
-
_FindWindowA.restype
|
|
715
|
+
_FindWindowA.restype = HWND
|
|
698
716
|
|
|
699
717
|
hWnd = _FindWindowA(lpClassName, lpWindowName)
|
|
700
718
|
if not hWnd:
|
|
@@ -703,10 +721,11 @@ def FindWindowA(lpClassName = None, lpWindowName = None):
|
|
|
703
721
|
raise ctypes.WinError(errcode)
|
|
704
722
|
return hWnd
|
|
705
723
|
|
|
706
|
-
|
|
724
|
+
|
|
725
|
+
def FindWindowW(lpClassName=None, lpWindowName=None):
|
|
707
726
|
_FindWindowW = windll.user32.FindWindowW
|
|
708
727
|
_FindWindowW.argtypes = [LPWSTR, LPWSTR]
|
|
709
|
-
_FindWindowW.restype
|
|
728
|
+
_FindWindowW.restype = HWND
|
|
710
729
|
|
|
711
730
|
hWnd = _FindWindowW(lpClassName, lpWindowName)
|
|
712
731
|
if not hWnd:
|
|
@@ -715,18 +734,20 @@ def FindWindowW(lpClassName = None, lpWindowName = None):
|
|
|
715
734
|
raise ctypes.WinError(errcode)
|
|
716
735
|
return hWnd
|
|
717
736
|
|
|
737
|
+
|
|
718
738
|
FindWindow = GuessStringType(FindWindowA, FindWindowW)
|
|
719
739
|
|
|
740
|
+
|
|
720
741
|
# HWND WINAPI FindWindowEx(
|
|
721
742
|
# __in_opt HWND hwndParent,
|
|
722
743
|
# __in_opt HWND hwndChildAfter,
|
|
723
744
|
# __in_opt LPCTSTR lpszClass,
|
|
724
745
|
# __in_opt LPCTSTR lpszWindow
|
|
725
746
|
# );
|
|
726
|
-
def FindWindowExA(hwndParent
|
|
747
|
+
def FindWindowExA(hwndParent=None, hwndChildAfter=None, lpClassName=None, lpWindowName=None):
|
|
727
748
|
_FindWindowExA = windll.user32.FindWindowExA
|
|
728
749
|
_FindWindowExA.argtypes = [HWND, HWND, LPSTR, LPSTR]
|
|
729
|
-
_FindWindowExA.restype
|
|
750
|
+
_FindWindowExA.restype = HWND
|
|
730
751
|
|
|
731
752
|
hWnd = _FindWindowExA(hwndParent, hwndChildAfter, lpClassName, lpWindowName)
|
|
732
753
|
if not hWnd:
|
|
@@ -735,10 +756,11 @@ def FindWindowExA(hwndParent = None, hwndChildAfter = None, lpClassName = None,
|
|
|
735
756
|
raise ctypes.WinError(errcode)
|
|
736
757
|
return hWnd
|
|
737
758
|
|
|
738
|
-
|
|
759
|
+
|
|
760
|
+
def FindWindowExW(hwndParent=None, hwndChildAfter=None, lpClassName=None, lpWindowName=None):
|
|
739
761
|
_FindWindowExW = windll.user32.FindWindowExW
|
|
740
762
|
_FindWindowExW.argtypes = [HWND, HWND, LPWSTR, LPWSTR]
|
|
741
|
-
_FindWindowExW.restype
|
|
763
|
+
_FindWindowExW.restype = HWND
|
|
742
764
|
|
|
743
765
|
hWnd = _FindWindowExW(hwndParent, hwndChildAfter, lpClassName, lpWindowName)
|
|
744
766
|
if not hWnd:
|
|
@@ -747,8 +769,10 @@ def FindWindowExW(hwndParent = None, hwndChildAfter = None, lpClassName = None,
|
|
|
747
769
|
raise ctypes.WinError(errcode)
|
|
748
770
|
return hWnd
|
|
749
771
|
|
|
772
|
+
|
|
750
773
|
FindWindowEx = GuessStringType(FindWindowExA, FindWindowExW)
|
|
751
774
|
|
|
775
|
+
|
|
752
776
|
# int GetClassName(
|
|
753
777
|
# HWND hWnd,
|
|
754
778
|
# LPTSTR lpClassName,
|
|
@@ -771,6 +795,7 @@ def GetClassNameA(hWnd):
|
|
|
771
795
|
nMaxCount += 0x1000
|
|
772
796
|
return lpClassName.value
|
|
773
797
|
|
|
798
|
+
|
|
774
799
|
def GetClassNameW(hWnd):
|
|
775
800
|
_GetClassNameW = windll.user32.GetClassNameW
|
|
776
801
|
_GetClassNameW.argtypes = [HWND, LPWSTR, ctypes.c_int]
|
|
@@ -779,7 +804,7 @@ def GetClassNameW(hWnd):
|
|
|
779
804
|
nMaxCount = 0x1000
|
|
780
805
|
dwCharSize = sizeof(WCHAR)
|
|
781
806
|
while 1:
|
|
782
|
-
lpClassName = ctypes.create_unicode_buffer(
|
|
807
|
+
lpClassName = ctypes.create_unicode_buffer("", nMaxCount)
|
|
783
808
|
nCount = _GetClassNameW(hWnd, lpClassName, nMaxCount)
|
|
784
809
|
if nCount == 0:
|
|
785
810
|
raise ctypes.WinError()
|
|
@@ -788,8 +813,10 @@ def GetClassNameW(hWnd):
|
|
|
788
813
|
nMaxCount += 0x1000
|
|
789
814
|
return lpClassName.value
|
|
790
815
|
|
|
816
|
+
|
|
791
817
|
GetClassName = GuessStringType(GetClassNameA, GetClassNameW)
|
|
792
818
|
|
|
819
|
+
|
|
793
820
|
# int WINAPI GetWindowText(
|
|
794
821
|
# __in HWND hWnd,
|
|
795
822
|
# __out LPTSTR lpString,
|
|
@@ -812,6 +839,7 @@ def GetWindowTextA(hWnd):
|
|
|
812
839
|
nMaxCount += 0x1000
|
|
813
840
|
return lpString.value
|
|
814
841
|
|
|
842
|
+
|
|
815
843
|
def GetWindowTextW(hWnd):
|
|
816
844
|
_GetWindowTextW = windll.user32.GetWindowTextW
|
|
817
845
|
_GetWindowTextW.argtypes = [HWND, LPWSTR, ctypes.c_int]
|
|
@@ -829,36 +857,41 @@ def GetWindowTextW(hWnd):
|
|
|
829
857
|
nMaxCount += 0x1000
|
|
830
858
|
return lpString.value
|
|
831
859
|
|
|
860
|
+
|
|
832
861
|
GetWindowText = GuessStringType(GetWindowTextA, GetWindowTextW)
|
|
833
862
|
|
|
863
|
+
|
|
834
864
|
# BOOL WINAPI SetWindowText(
|
|
835
865
|
# __in HWND hWnd,
|
|
836
866
|
# __in_opt LPCTSTR lpString
|
|
837
867
|
# );
|
|
838
|
-
def SetWindowTextA(hWnd, lpString
|
|
868
|
+
def SetWindowTextA(hWnd, lpString=None):
|
|
839
869
|
_SetWindowTextA = windll.user32.SetWindowTextA
|
|
840
870
|
_SetWindowTextA.argtypes = [HWND, LPSTR]
|
|
841
|
-
_SetWindowTextA.restype
|
|
871
|
+
_SetWindowTextA.restype = bool
|
|
842
872
|
_SetWindowTextA.errcheck = RaiseIfZero
|
|
843
873
|
_SetWindowTextA(hWnd, lpString)
|
|
844
874
|
|
|
845
|
-
|
|
875
|
+
|
|
876
|
+
def SetWindowTextW(hWnd, lpString=None):
|
|
846
877
|
_SetWindowTextW = windll.user32.SetWindowTextW
|
|
847
878
|
_SetWindowTextW.argtypes = [HWND, LPWSTR]
|
|
848
|
-
_SetWindowTextW.restype
|
|
879
|
+
_SetWindowTextW.restype = bool
|
|
849
880
|
_SetWindowTextW.errcheck = RaiseIfZero
|
|
850
881
|
_SetWindowTextW(hWnd, lpString)
|
|
851
882
|
|
|
883
|
+
|
|
852
884
|
SetWindowText = GuessStringType(SetWindowTextA, SetWindowTextW)
|
|
853
885
|
|
|
886
|
+
|
|
854
887
|
# LONG GetWindowLong(
|
|
855
888
|
# HWND hWnd,
|
|
856
889
|
# int nIndex
|
|
857
890
|
# );
|
|
858
|
-
def GetWindowLongA(hWnd, nIndex
|
|
891
|
+
def GetWindowLongA(hWnd, nIndex=0):
|
|
859
892
|
_GetWindowLongA = windll.user32.GetWindowLongA
|
|
860
893
|
_GetWindowLongA.argtypes = [HWND, ctypes.c_int]
|
|
861
|
-
_GetWindowLongA.restype
|
|
894
|
+
_GetWindowLongA.restype = DWORD
|
|
862
895
|
|
|
863
896
|
SetLastError(ERROR_SUCCESS)
|
|
864
897
|
retval = _GetWindowLongA(hWnd, nIndex)
|
|
@@ -868,10 +901,11 @@ def GetWindowLongA(hWnd, nIndex = 0):
|
|
|
868
901
|
raise ctypes.WinError(errcode)
|
|
869
902
|
return retval
|
|
870
903
|
|
|
871
|
-
|
|
904
|
+
|
|
905
|
+
def GetWindowLongW(hWnd, nIndex=0):
|
|
872
906
|
_GetWindowLongW = windll.user32.GetWindowLongW
|
|
873
907
|
_GetWindowLongW.argtypes = [HWND, ctypes.c_int]
|
|
874
|
-
_GetWindowLongW.restype
|
|
908
|
+
_GetWindowLongW.restype = DWORD
|
|
875
909
|
|
|
876
910
|
SetLastError(ERROR_SUCCESS)
|
|
877
911
|
retval = _GetWindowLongW(hWnd, nIndex)
|
|
@@ -881,6 +915,7 @@ def GetWindowLongW(hWnd, nIndex = 0):
|
|
|
881
915
|
raise ctypes.WinError(errcode)
|
|
882
916
|
return retval
|
|
883
917
|
|
|
918
|
+
|
|
884
919
|
GetWindowLong = DefaultStringType(GetWindowLongA, GetWindowLongW)
|
|
885
920
|
|
|
886
921
|
# LONG_PTR WINAPI GetWindowLongPtr(
|
|
@@ -889,17 +924,16 @@ GetWindowLong = DefaultStringType(GetWindowLongA, GetWindowLongW)
|
|
|
889
924
|
# );
|
|
890
925
|
|
|
891
926
|
if bits == 32:
|
|
892
|
-
|
|
893
927
|
GetWindowLongPtrA = GetWindowLongA
|
|
894
928
|
GetWindowLongPtrW = GetWindowLongW
|
|
895
|
-
GetWindowLongPtr
|
|
929
|
+
GetWindowLongPtr = GetWindowLong
|
|
896
930
|
|
|
897
931
|
else:
|
|
898
932
|
|
|
899
|
-
def GetWindowLongPtrA(hWnd, nIndex
|
|
933
|
+
def GetWindowLongPtrA(hWnd, nIndex=0):
|
|
900
934
|
_GetWindowLongPtrA = windll.user32.GetWindowLongPtrA
|
|
901
935
|
_GetWindowLongPtrA.argtypes = [HWND, ctypes.c_int]
|
|
902
|
-
_GetWindowLongPtrA.restype
|
|
936
|
+
_GetWindowLongPtrA.restype = SIZE_T
|
|
903
937
|
|
|
904
938
|
SetLastError(ERROR_SUCCESS)
|
|
905
939
|
retval = _GetWindowLongPtrA(hWnd, nIndex)
|
|
@@ -909,10 +943,10 @@ else:
|
|
|
909
943
|
raise ctypes.WinError(errcode)
|
|
910
944
|
return retval
|
|
911
945
|
|
|
912
|
-
def GetWindowLongPtrW(hWnd, nIndex
|
|
946
|
+
def GetWindowLongPtrW(hWnd, nIndex=0):
|
|
913
947
|
_GetWindowLongPtrW = windll.user32.GetWindowLongPtrW
|
|
914
948
|
_GetWindowLongPtrW.argtypes = [HWND, ctypes.c_int]
|
|
915
|
-
_GetWindowLongPtrW.restype
|
|
949
|
+
_GetWindowLongPtrW.restype = DWORD
|
|
916
950
|
|
|
917
951
|
SetLastError(ERROR_SUCCESS)
|
|
918
952
|
retval = _GetWindowLongPtrW(hWnd, nIndex)
|
|
@@ -930,10 +964,11 @@ else:
|
|
|
930
964
|
# _In_ LONG dwNewLong
|
|
931
965
|
# );
|
|
932
966
|
|
|
967
|
+
|
|
933
968
|
def SetWindowLongA(hWnd, nIndex, dwNewLong):
|
|
934
969
|
_SetWindowLongA = windll.user32.SetWindowLongA
|
|
935
970
|
_SetWindowLongA.argtypes = [HWND, ctypes.c_int, DWORD]
|
|
936
|
-
_SetWindowLongA.restype
|
|
971
|
+
_SetWindowLongA.restype = DWORD
|
|
937
972
|
|
|
938
973
|
SetLastError(ERROR_SUCCESS)
|
|
939
974
|
retval = _SetWindowLongA(hWnd, nIndex, dwNewLong)
|
|
@@ -943,10 +978,11 @@ def SetWindowLongA(hWnd, nIndex, dwNewLong):
|
|
|
943
978
|
raise ctypes.WinError(errcode)
|
|
944
979
|
return retval
|
|
945
980
|
|
|
981
|
+
|
|
946
982
|
def SetWindowLongW(hWnd, nIndex, dwNewLong):
|
|
947
983
|
_SetWindowLongW = windll.user32.SetWindowLongW
|
|
948
984
|
_SetWindowLongW.argtypes = [HWND, ctypes.c_int, DWORD]
|
|
949
|
-
_SetWindowLongW.restype
|
|
985
|
+
_SetWindowLongW.restype = DWORD
|
|
950
986
|
|
|
951
987
|
SetLastError(ERROR_SUCCESS)
|
|
952
988
|
retval = _SetWindowLongW(hWnd, nIndex, dwNewLong)
|
|
@@ -956,6 +992,7 @@ def SetWindowLongW(hWnd, nIndex, dwNewLong):
|
|
|
956
992
|
raise ctypes.WinError(errcode)
|
|
957
993
|
return retval
|
|
958
994
|
|
|
995
|
+
|
|
959
996
|
SetWindowLong = DefaultStringType(SetWindowLongA, SetWindowLongW)
|
|
960
997
|
|
|
961
998
|
# LONG_PTR WINAPI SetWindowLongPtr(
|
|
@@ -965,17 +1002,16 @@ SetWindowLong = DefaultStringType(SetWindowLongA, SetWindowLongW)
|
|
|
965
1002
|
# );
|
|
966
1003
|
|
|
967
1004
|
if bits == 32:
|
|
968
|
-
|
|
969
1005
|
SetWindowLongPtrA = SetWindowLongA
|
|
970
1006
|
SetWindowLongPtrW = SetWindowLongW
|
|
971
|
-
SetWindowLongPtr
|
|
1007
|
+
SetWindowLongPtr = SetWindowLong
|
|
972
1008
|
|
|
973
1009
|
else:
|
|
974
1010
|
|
|
975
1011
|
def SetWindowLongPtrA(hWnd, nIndex, dwNewLong):
|
|
976
1012
|
_SetWindowLongPtrA = windll.user32.SetWindowLongPtrA
|
|
977
1013
|
_SetWindowLongPtrA.argtypes = [HWND, ctypes.c_int, SIZE_T]
|
|
978
|
-
_SetWindowLongPtrA.restype
|
|
1014
|
+
_SetWindowLongPtrA.restype = SIZE_T
|
|
979
1015
|
|
|
980
1016
|
SetLastError(ERROR_SUCCESS)
|
|
981
1017
|
retval = _SetWindowLongPtrA(hWnd, nIndex, dwNewLong)
|
|
@@ -988,7 +1024,7 @@ else:
|
|
|
988
1024
|
def SetWindowLongPtrW(hWnd, nIndex, dwNewLong):
|
|
989
1025
|
_SetWindowLongPtrW = windll.user32.SetWindowLongPtrW
|
|
990
1026
|
_SetWindowLongPtrW.argtypes = [HWND, ctypes.c_int, SIZE_T]
|
|
991
|
-
_SetWindowLongPtrW.restype
|
|
1027
|
+
_SetWindowLongPtrW.restype = SIZE_T
|
|
992
1028
|
|
|
993
1029
|
SetLastError(ERROR_SUCCESS)
|
|
994
1030
|
retval = _SetWindowLongPtrW(hWnd, nIndex, dwNewLong)
|
|
@@ -1000,14 +1036,16 @@ else:
|
|
|
1000
1036
|
|
|
1001
1037
|
SetWindowLongPtr = DefaultStringType(SetWindowLongPtrA, SetWindowLongPtrW)
|
|
1002
1038
|
|
|
1039
|
+
|
|
1003
1040
|
# HWND GetShellWindow(VOID);
|
|
1004
1041
|
def GetShellWindow():
|
|
1005
1042
|
_GetShellWindow = windll.user32.GetShellWindow
|
|
1006
1043
|
_GetShellWindow.argtypes = []
|
|
1007
|
-
_GetShellWindow.restype
|
|
1044
|
+
_GetShellWindow.restype = HWND
|
|
1008
1045
|
_GetShellWindow.errcheck = RaiseIfZero
|
|
1009
1046
|
return _GetShellWindow()
|
|
1010
1047
|
|
|
1048
|
+
|
|
1011
1049
|
# DWORD GetWindowThreadProcessId(
|
|
1012
1050
|
# HWND hWnd,
|
|
1013
1051
|
# LPDWORD lpdwProcessId
|
|
@@ -1015,13 +1053,14 @@ def GetShellWindow():
|
|
|
1015
1053
|
def GetWindowThreadProcessId(hWnd):
|
|
1016
1054
|
_GetWindowThreadProcessId = windll.user32.GetWindowThreadProcessId
|
|
1017
1055
|
_GetWindowThreadProcessId.argtypes = [HWND, LPDWORD]
|
|
1018
|
-
_GetWindowThreadProcessId.restype
|
|
1056
|
+
_GetWindowThreadProcessId.restype = DWORD
|
|
1019
1057
|
_GetWindowThreadProcessId.errcheck = RaiseIfZero
|
|
1020
1058
|
|
|
1021
1059
|
dwProcessId = DWORD(0)
|
|
1022
1060
|
dwThreadId = _GetWindowThreadProcessId(hWnd, byref(dwProcessId))
|
|
1023
1061
|
return (dwThreadId, dwProcessId.value)
|
|
1024
1062
|
|
|
1063
|
+
|
|
1025
1064
|
# HWND WINAPI GetWindow(
|
|
1026
1065
|
# __in HWND hwnd,
|
|
1027
1066
|
# __in UINT uCmd
|
|
@@ -1029,7 +1068,7 @@ def GetWindowThreadProcessId(hWnd):
|
|
|
1029
1068
|
def GetWindow(hWnd, uCmd):
|
|
1030
1069
|
_GetWindow = windll.user32.GetWindow
|
|
1031
1070
|
_GetWindow.argtypes = [HWND, UINT]
|
|
1032
|
-
_GetWindow.restype
|
|
1071
|
+
_GetWindow.restype = HWND
|
|
1033
1072
|
|
|
1034
1073
|
SetLastError(ERROR_SUCCESS)
|
|
1035
1074
|
hWndTarget = _GetWindow(hWnd, uCmd)
|
|
@@ -1039,13 +1078,14 @@ def GetWindow(hWnd, uCmd):
|
|
|
1039
1078
|
raise ctypes.WinError(winerr)
|
|
1040
1079
|
return hWndTarget
|
|
1041
1080
|
|
|
1081
|
+
|
|
1042
1082
|
# HWND GetParent(
|
|
1043
1083
|
# HWND hWnd
|
|
1044
1084
|
# );
|
|
1045
1085
|
def GetParent(hWnd):
|
|
1046
1086
|
_GetParent = windll.user32.GetParent
|
|
1047
1087
|
_GetParent.argtypes = [HWND]
|
|
1048
|
-
_GetParent.restype
|
|
1088
|
+
_GetParent.restype = HWND
|
|
1049
1089
|
|
|
1050
1090
|
SetLastError(ERROR_SUCCESS)
|
|
1051
1091
|
hWndParent = _GetParent(hWnd)
|
|
@@ -1055,14 +1095,15 @@ def GetParent(hWnd):
|
|
|
1055
1095
|
raise ctypes.WinError(winerr)
|
|
1056
1096
|
return hWndParent
|
|
1057
1097
|
|
|
1098
|
+
|
|
1058
1099
|
# HWND WINAPI GetAncestor(
|
|
1059
1100
|
# __in HWND hwnd,
|
|
1060
1101
|
# __in UINT gaFlags
|
|
1061
1102
|
# );
|
|
1062
|
-
def GetAncestor(hWnd, gaFlags
|
|
1103
|
+
def GetAncestor(hWnd, gaFlags=GA_PARENT):
|
|
1063
1104
|
_GetAncestor = windll.user32.GetAncestor
|
|
1064
1105
|
_GetAncestor.argtypes = [HWND, UINT]
|
|
1065
|
-
_GetAncestor.restype
|
|
1106
|
+
_GetAncestor.restype = HWND
|
|
1066
1107
|
|
|
1067
1108
|
SetLastError(ERROR_SUCCESS)
|
|
1068
1109
|
hWndParent = _GetAncestor(hWnd, gaFlags)
|
|
@@ -1072,118 +1113,131 @@ def GetAncestor(hWnd, gaFlags = GA_PARENT):
|
|
|
1072
1113
|
raise ctypes.WinError(winerr)
|
|
1073
1114
|
return hWndParent
|
|
1074
1115
|
|
|
1116
|
+
|
|
1075
1117
|
# BOOL EnableWindow(
|
|
1076
1118
|
# HWND hWnd,
|
|
1077
1119
|
# BOOL bEnable
|
|
1078
1120
|
# );
|
|
1079
|
-
def EnableWindow(hWnd, bEnable
|
|
1121
|
+
def EnableWindow(hWnd, bEnable=True):
|
|
1080
1122
|
_EnableWindow = windll.user32.EnableWindow
|
|
1081
1123
|
_EnableWindow.argtypes = [HWND, BOOL]
|
|
1082
|
-
_EnableWindow.restype
|
|
1124
|
+
_EnableWindow.restype = bool
|
|
1083
1125
|
return _EnableWindow(hWnd, bool(bEnable))
|
|
1084
1126
|
|
|
1127
|
+
|
|
1085
1128
|
# BOOL ShowWindow(
|
|
1086
1129
|
# HWND hWnd,
|
|
1087
1130
|
# int nCmdShow
|
|
1088
1131
|
# );
|
|
1089
|
-
def ShowWindow(hWnd, nCmdShow
|
|
1132
|
+
def ShowWindow(hWnd, nCmdShow=SW_SHOW):
|
|
1090
1133
|
_ShowWindow = windll.user32.ShowWindow
|
|
1091
1134
|
_ShowWindow.argtypes = [HWND, ctypes.c_int]
|
|
1092
|
-
_ShowWindow.restype
|
|
1135
|
+
_ShowWindow.restype = bool
|
|
1093
1136
|
return _ShowWindow(hWnd, nCmdShow)
|
|
1094
1137
|
|
|
1138
|
+
|
|
1095
1139
|
# BOOL ShowWindowAsync(
|
|
1096
1140
|
# HWND hWnd,
|
|
1097
1141
|
# int nCmdShow
|
|
1098
1142
|
# );
|
|
1099
|
-
def ShowWindowAsync(hWnd, nCmdShow
|
|
1143
|
+
def ShowWindowAsync(hWnd, nCmdShow=SW_SHOW):
|
|
1100
1144
|
_ShowWindowAsync = windll.user32.ShowWindowAsync
|
|
1101
1145
|
_ShowWindowAsync.argtypes = [HWND, ctypes.c_int]
|
|
1102
|
-
_ShowWindowAsync.restype
|
|
1146
|
+
_ShowWindowAsync.restype = bool
|
|
1103
1147
|
return _ShowWindowAsync(hWnd, nCmdShow)
|
|
1104
1148
|
|
|
1149
|
+
|
|
1105
1150
|
# HWND GetDesktopWindow(VOID);
|
|
1106
1151
|
def GetDesktopWindow():
|
|
1107
1152
|
_GetDesktopWindow = windll.user32.GetDesktopWindow
|
|
1108
1153
|
_GetDesktopWindow.argtypes = []
|
|
1109
|
-
_GetDesktopWindow.restype
|
|
1154
|
+
_GetDesktopWindow.restype = HWND
|
|
1110
1155
|
_GetDesktopWindow.errcheck = RaiseIfZero
|
|
1111
1156
|
return _GetDesktopWindow()
|
|
1112
1157
|
|
|
1158
|
+
|
|
1113
1159
|
# HWND GetForegroundWindow(VOID);
|
|
1114
1160
|
def GetForegroundWindow():
|
|
1115
1161
|
_GetForegroundWindow = windll.user32.GetForegroundWindow
|
|
1116
1162
|
_GetForegroundWindow.argtypes = []
|
|
1117
|
-
_GetForegroundWindow.restype
|
|
1163
|
+
_GetForegroundWindow.restype = HWND
|
|
1118
1164
|
_GetForegroundWindow.errcheck = RaiseIfZero
|
|
1119
1165
|
return _GetForegroundWindow()
|
|
1120
1166
|
|
|
1167
|
+
|
|
1121
1168
|
# BOOL IsWindow(
|
|
1122
1169
|
# HWND hWnd
|
|
1123
1170
|
# );
|
|
1124
1171
|
def IsWindow(hWnd):
|
|
1125
1172
|
_IsWindow = windll.user32.IsWindow
|
|
1126
1173
|
_IsWindow.argtypes = [HWND]
|
|
1127
|
-
_IsWindow.restype
|
|
1174
|
+
_IsWindow.restype = bool
|
|
1128
1175
|
return _IsWindow(hWnd)
|
|
1129
1176
|
|
|
1177
|
+
|
|
1130
1178
|
# BOOL IsWindowVisible(
|
|
1131
1179
|
# HWND hWnd
|
|
1132
1180
|
# );
|
|
1133
1181
|
def IsWindowVisible(hWnd):
|
|
1134
1182
|
_IsWindowVisible = windll.user32.IsWindowVisible
|
|
1135
1183
|
_IsWindowVisible.argtypes = [HWND]
|
|
1136
|
-
_IsWindowVisible.restype
|
|
1184
|
+
_IsWindowVisible.restype = bool
|
|
1137
1185
|
return _IsWindowVisible(hWnd)
|
|
1138
1186
|
|
|
1187
|
+
|
|
1139
1188
|
# BOOL IsWindowEnabled(
|
|
1140
1189
|
# HWND hWnd
|
|
1141
1190
|
# );
|
|
1142
1191
|
def IsWindowEnabled(hWnd):
|
|
1143
1192
|
_IsWindowEnabled = windll.user32.IsWindowEnabled
|
|
1144
1193
|
_IsWindowEnabled.argtypes = [HWND]
|
|
1145
|
-
_IsWindowEnabled.restype
|
|
1194
|
+
_IsWindowEnabled.restype = bool
|
|
1146
1195
|
return _IsWindowEnabled(hWnd)
|
|
1147
1196
|
|
|
1197
|
+
|
|
1148
1198
|
# BOOL IsZoomed(
|
|
1149
1199
|
# HWND hWnd
|
|
1150
1200
|
# );
|
|
1151
1201
|
def IsZoomed(hWnd):
|
|
1152
1202
|
_IsZoomed = windll.user32.IsZoomed
|
|
1153
1203
|
_IsZoomed.argtypes = [HWND]
|
|
1154
|
-
_IsZoomed.restype
|
|
1204
|
+
_IsZoomed.restype = bool
|
|
1155
1205
|
return _IsZoomed(hWnd)
|
|
1156
1206
|
|
|
1207
|
+
|
|
1157
1208
|
# BOOL IsIconic(
|
|
1158
1209
|
# HWND hWnd
|
|
1159
1210
|
# );
|
|
1160
1211
|
def IsIconic(hWnd):
|
|
1161
1212
|
_IsIconic = windll.user32.IsIconic
|
|
1162
1213
|
_IsIconic.argtypes = [HWND]
|
|
1163
|
-
_IsIconic.restype
|
|
1214
|
+
_IsIconic.restype = bool
|
|
1164
1215
|
return _IsIconic(hWnd)
|
|
1165
1216
|
|
|
1217
|
+
|
|
1166
1218
|
# BOOL IsChild(
|
|
1167
1219
|
# HWND hWnd
|
|
1168
1220
|
# );
|
|
1169
1221
|
def IsChild(hWnd):
|
|
1170
1222
|
_IsChild = windll.user32.IsChild
|
|
1171
1223
|
_IsChild.argtypes = [HWND]
|
|
1172
|
-
_IsChild.restype
|
|
1224
|
+
_IsChild.restype = bool
|
|
1173
1225
|
return _IsChild(hWnd)
|
|
1174
1226
|
|
|
1227
|
+
|
|
1175
1228
|
# HWND WindowFromPoint(
|
|
1176
1229
|
# POINT Point
|
|
1177
1230
|
# );
|
|
1178
1231
|
def WindowFromPoint(point):
|
|
1179
1232
|
_WindowFromPoint = windll.user32.WindowFromPoint
|
|
1180
1233
|
_WindowFromPoint.argtypes = [POINT]
|
|
1181
|
-
_WindowFromPoint.restype
|
|
1234
|
+
_WindowFromPoint.restype = HWND
|
|
1182
1235
|
_WindowFromPoint.errcheck = RaiseIfZero
|
|
1183
1236
|
if isinstance(point, tuple):
|
|
1184
1237
|
point = POINT(*point)
|
|
1185
1238
|
return _WindowFromPoint(point)
|
|
1186
1239
|
|
|
1240
|
+
|
|
1187
1241
|
# HWND ChildWindowFromPoint(
|
|
1188
1242
|
# HWND hWndParent,
|
|
1189
1243
|
# POINT Point
|
|
@@ -1191,25 +1245,27 @@ def WindowFromPoint(point):
|
|
|
1191
1245
|
def ChildWindowFromPoint(hWndParent, point):
|
|
1192
1246
|
_ChildWindowFromPoint = windll.user32.ChildWindowFromPoint
|
|
1193
1247
|
_ChildWindowFromPoint.argtypes = [HWND, POINT]
|
|
1194
|
-
_ChildWindowFromPoint.restype
|
|
1248
|
+
_ChildWindowFromPoint.restype = HWND
|
|
1195
1249
|
_ChildWindowFromPoint.errcheck = RaiseIfZero
|
|
1196
1250
|
if isinstance(point, tuple):
|
|
1197
1251
|
point = POINT(*point)
|
|
1198
1252
|
return _ChildWindowFromPoint(hWndParent, point)
|
|
1199
1253
|
|
|
1200
|
-
|
|
1254
|
+
|
|
1255
|
+
# HWND RealChildWindowFromPoint(
|
|
1201
1256
|
# HWND hwndParent,
|
|
1202
1257
|
# POINT ptParentClientCoords
|
|
1203
|
-
#);
|
|
1258
|
+
# );
|
|
1204
1259
|
def RealChildWindowFromPoint(hWndParent, ptParentClientCoords):
|
|
1205
1260
|
_RealChildWindowFromPoint = windll.user32.RealChildWindowFromPoint
|
|
1206
1261
|
_RealChildWindowFromPoint.argtypes = [HWND, POINT]
|
|
1207
|
-
_RealChildWindowFromPoint.restype
|
|
1262
|
+
_RealChildWindowFromPoint.restype = HWND
|
|
1208
1263
|
_RealChildWindowFromPoint.errcheck = RaiseIfZero
|
|
1209
1264
|
if isinstance(ptParentClientCoords, tuple):
|
|
1210
1265
|
ptParentClientCoords = POINT(*ptParentClientCoords)
|
|
1211
1266
|
return _RealChildWindowFromPoint(hWndParent, ptParentClientCoords)
|
|
1212
1267
|
|
|
1268
|
+
|
|
1213
1269
|
# BOOL ScreenToClient(
|
|
1214
1270
|
# __in HWND hWnd,
|
|
1215
1271
|
# LPPOINT lpPoint
|
|
@@ -1217,7 +1273,7 @@ def RealChildWindowFromPoint(hWndParent, ptParentClientCoords):
|
|
|
1217
1273
|
def ScreenToClient(hWnd, lpPoint):
|
|
1218
1274
|
_ScreenToClient = windll.user32.ScreenToClient
|
|
1219
1275
|
_ScreenToClient.argtypes = [HWND, LPPOINT]
|
|
1220
|
-
_ScreenToClient.restype
|
|
1276
|
+
_ScreenToClient.restype = bool
|
|
1221
1277
|
_ScreenToClient.errcheck = RaiseIfZero
|
|
1222
1278
|
|
|
1223
1279
|
if isinstance(lpPoint, tuple):
|
|
@@ -1227,6 +1283,7 @@ def ScreenToClient(hWnd, lpPoint):
|
|
|
1227
1283
|
_ScreenToClient(hWnd, byref(lpPoint))
|
|
1228
1284
|
return Point(lpPoint.x, lpPoint.y)
|
|
1229
1285
|
|
|
1286
|
+
|
|
1230
1287
|
# BOOL ClientToScreen(
|
|
1231
1288
|
# HWND hWnd,
|
|
1232
1289
|
# LPPOINT lpPoint
|
|
@@ -1234,7 +1291,7 @@ def ScreenToClient(hWnd, lpPoint):
|
|
|
1234
1291
|
def ClientToScreen(hWnd, lpPoint):
|
|
1235
1292
|
_ClientToScreen = windll.user32.ClientToScreen
|
|
1236
1293
|
_ClientToScreen.argtypes = [HWND, LPPOINT]
|
|
1237
|
-
_ClientToScreen.restype
|
|
1294
|
+
_ClientToScreen.restype = bool
|
|
1238
1295
|
_ClientToScreen.errcheck = RaiseIfZero
|
|
1239
1296
|
|
|
1240
1297
|
if isinstance(lpPoint, tuple):
|
|
@@ -1244,6 +1301,7 @@ def ClientToScreen(hWnd, lpPoint):
|
|
|
1244
1301
|
_ClientToScreen(hWnd, byref(lpPoint))
|
|
1245
1302
|
return Point(lpPoint.x, lpPoint.y)
|
|
1246
1303
|
|
|
1304
|
+
|
|
1247
1305
|
# int MapWindowPoints(
|
|
1248
1306
|
# __in HWND hWndFrom,
|
|
1249
1307
|
# __in HWND hWndTo,
|
|
@@ -1253,30 +1311,32 @@ def ClientToScreen(hWnd, lpPoint):
|
|
|
1253
1311
|
def MapWindowPoints(hWndFrom, hWndTo, lpPoints):
|
|
1254
1312
|
_MapWindowPoints = windll.user32.MapWindowPoints
|
|
1255
1313
|
_MapWindowPoints.argtypes = [HWND, HWND, LPPOINT, UINT]
|
|
1256
|
-
_MapWindowPoints.restype
|
|
1314
|
+
_MapWindowPoints.restype = ctypes.c_int
|
|
1257
1315
|
|
|
1258
|
-
cPoints
|
|
1259
|
-
lpPoints = (POINT * cPoints)(*
|
|
1316
|
+
cPoints = len(lpPoints)
|
|
1317
|
+
lpPoints = (POINT * cPoints)(*lpPoints)
|
|
1260
1318
|
SetLastError(ERROR_SUCCESS)
|
|
1261
|
-
number
|
|
1319
|
+
number = _MapWindowPoints(hWndFrom, hWndTo, byref(lpPoints), cPoints)
|
|
1262
1320
|
if number == 0:
|
|
1263
1321
|
errcode = GetLastError()
|
|
1264
1322
|
if errcode != ERROR_SUCCESS:
|
|
1265
1323
|
raise ctypes.WinError(errcode)
|
|
1266
1324
|
x_delta = number & 0xFFFF
|
|
1267
1325
|
y_delta = (number >> 16) & 0xFFFF
|
|
1268
|
-
return x_delta, y_delta, [
|
|
1326
|
+
return x_delta, y_delta, [(Point.x, Point.y) for Point in lpPoints]
|
|
1269
1327
|
|
|
1270
|
-
|
|
1328
|
+
|
|
1329
|
+
# BOOL SetForegroundWindow(
|
|
1271
1330
|
# HWND hWnd
|
|
1272
|
-
#);
|
|
1331
|
+
# );
|
|
1273
1332
|
def SetForegroundWindow(hWnd):
|
|
1274
1333
|
_SetForegroundWindow = windll.user32.SetForegroundWindow
|
|
1275
1334
|
_SetForegroundWindow.argtypes = [HWND]
|
|
1276
|
-
_SetForegroundWindow.restype
|
|
1335
|
+
_SetForegroundWindow.restype = bool
|
|
1277
1336
|
_SetForegroundWindow.errcheck = RaiseIfZero
|
|
1278
1337
|
return _SetForegroundWindow(hWnd)
|
|
1279
1338
|
|
|
1339
|
+
|
|
1280
1340
|
# BOOL GetWindowPlacement(
|
|
1281
1341
|
# HWND hWnd,
|
|
1282
1342
|
# WINDOWPLACEMENT *lpwndpl
|
|
@@ -1284,7 +1344,7 @@ def SetForegroundWindow(hWnd):
|
|
|
1284
1344
|
def GetWindowPlacement(hWnd):
|
|
1285
1345
|
_GetWindowPlacement = windll.user32.GetWindowPlacement
|
|
1286
1346
|
_GetWindowPlacement.argtypes = [HWND, PWINDOWPLACEMENT]
|
|
1287
|
-
_GetWindowPlacement.restype
|
|
1347
|
+
_GetWindowPlacement.restype = bool
|
|
1288
1348
|
_GetWindowPlacement.errcheck = RaiseIfZero
|
|
1289
1349
|
|
|
1290
1350
|
lpwndpl = WINDOWPLACEMENT()
|
|
@@ -1292,6 +1352,7 @@ def GetWindowPlacement(hWnd):
|
|
|
1292
1352
|
_GetWindowPlacement(hWnd, byref(lpwndpl))
|
|
1293
1353
|
return WindowPlacement(lpwndpl)
|
|
1294
1354
|
|
|
1355
|
+
|
|
1295
1356
|
# BOOL SetWindowPlacement(
|
|
1296
1357
|
# HWND hWnd,
|
|
1297
1358
|
# WINDOWPLACEMENT *lpwndpl
|
|
@@ -1299,13 +1360,14 @@ def GetWindowPlacement(hWnd):
|
|
|
1299
1360
|
def SetWindowPlacement(hWnd, lpwndpl):
|
|
1300
1361
|
_SetWindowPlacement = windll.user32.SetWindowPlacement
|
|
1301
1362
|
_SetWindowPlacement.argtypes = [HWND, PWINDOWPLACEMENT]
|
|
1302
|
-
_SetWindowPlacement.restype
|
|
1363
|
+
_SetWindowPlacement.restype = bool
|
|
1303
1364
|
_SetWindowPlacement.errcheck = RaiseIfZero
|
|
1304
1365
|
|
|
1305
1366
|
if isinstance(lpwndpl, WINDOWPLACEMENT):
|
|
1306
1367
|
lpwndpl.length = sizeof(lpwndpl)
|
|
1307
1368
|
_SetWindowPlacement(hWnd, byref(lpwndpl))
|
|
1308
1369
|
|
|
1370
|
+
|
|
1309
1371
|
# BOOL WINAPI GetWindowRect(
|
|
1310
1372
|
# __in HWND hWnd,
|
|
1311
1373
|
# __out LPRECT lpRect
|
|
@@ -1313,13 +1375,14 @@ def SetWindowPlacement(hWnd, lpwndpl):
|
|
|
1313
1375
|
def GetWindowRect(hWnd):
|
|
1314
1376
|
_GetWindowRect = windll.user32.GetWindowRect
|
|
1315
1377
|
_GetWindowRect.argtypes = [HWND, LPRECT]
|
|
1316
|
-
_GetWindowRect.restype
|
|
1378
|
+
_GetWindowRect.restype = bool
|
|
1317
1379
|
_GetWindowRect.errcheck = RaiseIfZero
|
|
1318
1380
|
|
|
1319
1381
|
lpRect = RECT()
|
|
1320
1382
|
_GetWindowRect(hWnd, byref(lpRect))
|
|
1321
1383
|
return Rect(lpRect.left, lpRect.top, lpRect.right, lpRect.bottom)
|
|
1322
1384
|
|
|
1385
|
+
|
|
1323
1386
|
# BOOL WINAPI GetClientRect(
|
|
1324
1387
|
# __in HWND hWnd,
|
|
1325
1388
|
# __out LPRECT lpRect
|
|
@@ -1327,28 +1390,30 @@ def GetWindowRect(hWnd):
|
|
|
1327
1390
|
def GetClientRect(hWnd):
|
|
1328
1391
|
_GetClientRect = windll.user32.GetClientRect
|
|
1329
1392
|
_GetClientRect.argtypes = [HWND, LPRECT]
|
|
1330
|
-
_GetClientRect.restype
|
|
1393
|
+
_GetClientRect.restype = bool
|
|
1331
1394
|
_GetClientRect.errcheck = RaiseIfZero
|
|
1332
1395
|
|
|
1333
1396
|
lpRect = RECT()
|
|
1334
1397
|
_GetClientRect(hWnd, byref(lpRect))
|
|
1335
1398
|
return Rect(lpRect.left, lpRect.top, lpRect.right, lpRect.bottom)
|
|
1336
1399
|
|
|
1337
|
-
|
|
1400
|
+
|
|
1401
|
+
# BOOL MoveWindow(
|
|
1338
1402
|
# HWND hWnd,
|
|
1339
1403
|
# int X,
|
|
1340
1404
|
# int Y,
|
|
1341
1405
|
# int nWidth,
|
|
1342
1406
|
# int nHeight,
|
|
1343
1407
|
# BOOL bRepaint
|
|
1344
|
-
#);
|
|
1345
|
-
def MoveWindow(hWnd, X, Y, nWidth, nHeight, bRepaint
|
|
1408
|
+
# );
|
|
1409
|
+
def MoveWindow(hWnd, X, Y, nWidth, nHeight, bRepaint=True):
|
|
1346
1410
|
_MoveWindow = windll.user32.MoveWindow
|
|
1347
1411
|
_MoveWindow.argtypes = [HWND, ctypes.c_int, ctypes.c_int, ctypes.c_int, ctypes.c_int, BOOL]
|
|
1348
|
-
_MoveWindow.restype
|
|
1412
|
+
_MoveWindow.restype = bool
|
|
1349
1413
|
_MoveWindow.errcheck = RaiseIfZero
|
|
1350
1414
|
_MoveWindow(hWnd, X, Y, nWidth, nHeight, bool(bRepaint))
|
|
1351
1415
|
|
|
1416
|
+
|
|
1352
1417
|
# BOOL GetGUIThreadInfo(
|
|
1353
1418
|
# DWORD idThread,
|
|
1354
1419
|
# LPGUITHREADINFO lpgui
|
|
@@ -1356,20 +1421,22 @@ def MoveWindow(hWnd, X, Y, nWidth, nHeight, bRepaint = True):
|
|
|
1356
1421
|
def GetGUIThreadInfo(idThread):
|
|
1357
1422
|
_GetGUIThreadInfo = windll.user32.GetGUIThreadInfo
|
|
1358
1423
|
_GetGUIThreadInfo.argtypes = [DWORD, LPGUITHREADINFO]
|
|
1359
|
-
_GetGUIThreadInfo.restype
|
|
1424
|
+
_GetGUIThreadInfo.restype = bool
|
|
1360
1425
|
_GetGUIThreadInfo.errcheck = RaiseIfZero
|
|
1361
1426
|
|
|
1362
1427
|
gui = GUITHREADINFO()
|
|
1363
1428
|
_GetGUIThreadInfo(idThread, byref(gui))
|
|
1364
1429
|
return gui
|
|
1365
1430
|
|
|
1431
|
+
|
|
1366
1432
|
# BOOL CALLBACK EnumWndProc(
|
|
1367
1433
|
# HWND hwnd,
|
|
1368
1434
|
# LPARAM lParam
|
|
1369
1435
|
# );
|
|
1370
|
-
class __EnumWndProc
|
|
1436
|
+
class __EnumWndProc(__WindowEnumerator):
|
|
1371
1437
|
pass
|
|
1372
1438
|
|
|
1439
|
+
|
|
1373
1440
|
# BOOL EnumWindows(
|
|
1374
1441
|
# WNDENUMPROC lpEnumFunc,
|
|
1375
1442
|
# LPARAM lParam
|
|
@@ -1377,7 +1444,7 @@ class __EnumWndProc (__WindowEnumerator):
|
|
|
1377
1444
|
def EnumWindows():
|
|
1378
1445
|
_EnumWindows = windll.user32.EnumWindows
|
|
1379
1446
|
_EnumWindows.argtypes = [WNDENUMPROC, LPARAM]
|
|
1380
|
-
_EnumWindows.restype
|
|
1447
|
+
_EnumWindows.restype = bool
|
|
1381
1448
|
|
|
1382
1449
|
EnumFunc = __EnumWndProc()
|
|
1383
1450
|
lpEnumFunc = WNDENUMPROC(EnumFunc)
|
|
@@ -1387,13 +1454,15 @@ def EnumWindows():
|
|
|
1387
1454
|
raise ctypes.WinError(errcode)
|
|
1388
1455
|
return EnumFunc.hwnd
|
|
1389
1456
|
|
|
1457
|
+
|
|
1390
1458
|
# BOOL CALLBACK EnumThreadWndProc(
|
|
1391
1459
|
# HWND hwnd,
|
|
1392
1460
|
# LPARAM lParam
|
|
1393
1461
|
# );
|
|
1394
|
-
class __EnumThreadWndProc
|
|
1462
|
+
class __EnumThreadWndProc(__WindowEnumerator):
|
|
1395
1463
|
pass
|
|
1396
1464
|
|
|
1465
|
+
|
|
1397
1466
|
# BOOL EnumThreadWindows(
|
|
1398
1467
|
# DWORD dwThreadId,
|
|
1399
1468
|
# WNDENUMPROC lpfn,
|
|
@@ -1402,7 +1471,7 @@ class __EnumThreadWndProc (__WindowEnumerator):
|
|
|
1402
1471
|
def EnumThreadWindows(dwThreadId):
|
|
1403
1472
|
_EnumThreadWindows = windll.user32.EnumThreadWindows
|
|
1404
1473
|
_EnumThreadWindows.argtypes = [DWORD, WNDENUMPROC, LPARAM]
|
|
1405
|
-
_EnumThreadWindows.restype
|
|
1474
|
+
_EnumThreadWindows.restype = bool
|
|
1406
1475
|
|
|
1407
1476
|
fn = __EnumThreadWndProc()
|
|
1408
1477
|
lpfn = WNDENUMPROC(fn)
|
|
@@ -1412,22 +1481,24 @@ def EnumThreadWindows(dwThreadId):
|
|
|
1412
1481
|
raise ctypes.WinError(errcode)
|
|
1413
1482
|
return fn.hwnd
|
|
1414
1483
|
|
|
1484
|
+
|
|
1415
1485
|
# BOOL CALLBACK EnumChildProc(
|
|
1416
1486
|
# HWND hwnd,
|
|
1417
1487
|
# LPARAM lParam
|
|
1418
1488
|
# );
|
|
1419
|
-
class __EnumChildProc
|
|
1489
|
+
class __EnumChildProc(__WindowEnumerator):
|
|
1420
1490
|
pass
|
|
1421
1491
|
|
|
1492
|
+
|
|
1422
1493
|
# BOOL EnumChildWindows(
|
|
1423
1494
|
# HWND hWndParent,
|
|
1424
1495
|
# WNDENUMPROC lpEnumFunc,
|
|
1425
1496
|
# LPARAM lParam
|
|
1426
1497
|
# );
|
|
1427
|
-
def EnumChildWindows(hWndParent
|
|
1498
|
+
def EnumChildWindows(hWndParent=NULL):
|
|
1428
1499
|
_EnumChildWindows = windll.user32.EnumChildWindows
|
|
1429
1500
|
_EnumChildWindows.argtypes = [HWND, WNDENUMPROC, LPARAM]
|
|
1430
|
-
_EnumChildWindows.restype
|
|
1501
|
+
_EnumChildWindows.restype = bool
|
|
1431
1502
|
|
|
1432
1503
|
EnumFunc = __EnumChildProc()
|
|
1433
1504
|
lpEnumFunc = WNDENUMPROC(EnumFunc)
|
|
@@ -1438,88 +1509,98 @@ def EnumChildWindows(hWndParent = NULL):
|
|
|
1438
1509
|
raise ctypes.WinError(errcode)
|
|
1439
1510
|
return EnumFunc.hwnd
|
|
1440
1511
|
|
|
1512
|
+
|
|
1441
1513
|
# LRESULT SendMessage(
|
|
1442
1514
|
# HWND hWnd,
|
|
1443
1515
|
# UINT Msg,
|
|
1444
1516
|
# WPARAM wParam,
|
|
1445
1517
|
# LPARAM lParam
|
|
1446
1518
|
# );
|
|
1447
|
-
def SendMessageA(hWnd, Msg, wParam
|
|
1519
|
+
def SendMessageA(hWnd, Msg, wParam=0, lParam=0):
|
|
1448
1520
|
_SendMessageA = windll.user32.SendMessageA
|
|
1449
1521
|
_SendMessageA.argtypes = [HWND, UINT, WPARAM, LPARAM]
|
|
1450
|
-
_SendMessageA.restype
|
|
1522
|
+
_SendMessageA.restype = LRESULT
|
|
1451
1523
|
|
|
1452
1524
|
wParam = MAKE_WPARAM(wParam)
|
|
1453
1525
|
lParam = MAKE_LPARAM(lParam)
|
|
1454
1526
|
return _SendMessageA(hWnd, Msg, wParam, lParam)
|
|
1455
1527
|
|
|
1456
|
-
|
|
1528
|
+
|
|
1529
|
+
def SendMessageW(hWnd, Msg, wParam=0, lParam=0):
|
|
1457
1530
|
_SendMessageW = windll.user32.SendMessageW
|
|
1458
1531
|
_SendMessageW.argtypes = [HWND, UINT, WPARAM, LPARAM]
|
|
1459
|
-
_SendMessageW.restype
|
|
1532
|
+
_SendMessageW.restype = LRESULT
|
|
1460
1533
|
|
|
1461
1534
|
wParam = MAKE_WPARAM(wParam)
|
|
1462
1535
|
lParam = MAKE_LPARAM(lParam)
|
|
1463
1536
|
return _SendMessageW(hWnd, Msg, wParam, lParam)
|
|
1464
1537
|
|
|
1538
|
+
|
|
1465
1539
|
SendMessage = GuessStringType(SendMessageA, SendMessageW)
|
|
1466
1540
|
|
|
1541
|
+
|
|
1467
1542
|
# BOOL PostMessage(
|
|
1468
1543
|
# HWND hWnd,
|
|
1469
1544
|
# UINT Msg,
|
|
1470
1545
|
# WPARAM wParam,
|
|
1471
1546
|
# LPARAM lParam
|
|
1472
1547
|
# );
|
|
1473
|
-
def PostMessageA(hWnd, Msg, wParam
|
|
1548
|
+
def PostMessageA(hWnd, Msg, wParam=0, lParam=0):
|
|
1474
1549
|
_PostMessageA = windll.user32.PostMessageA
|
|
1475
1550
|
_PostMessageA.argtypes = [HWND, UINT, WPARAM, LPARAM]
|
|
1476
|
-
_PostMessageA.restype
|
|
1551
|
+
_PostMessageA.restype = bool
|
|
1477
1552
|
_PostMessageA.errcheck = RaiseIfZero
|
|
1478
1553
|
|
|
1479
1554
|
wParam = MAKE_WPARAM(wParam)
|
|
1480
1555
|
lParam = MAKE_LPARAM(lParam)
|
|
1481
1556
|
_PostMessageA(hWnd, Msg, wParam, lParam)
|
|
1482
1557
|
|
|
1483
|
-
|
|
1558
|
+
|
|
1559
|
+
def PostMessageW(hWnd, Msg, wParam=0, lParam=0):
|
|
1484
1560
|
_PostMessageW = windll.user32.PostMessageW
|
|
1485
1561
|
_PostMessageW.argtypes = [HWND, UINT, WPARAM, LPARAM]
|
|
1486
|
-
_PostMessageW.restype
|
|
1562
|
+
_PostMessageW.restype = bool
|
|
1487
1563
|
_PostMessageW.errcheck = RaiseIfZero
|
|
1488
1564
|
|
|
1489
1565
|
wParam = MAKE_WPARAM(wParam)
|
|
1490
1566
|
lParam = MAKE_LPARAM(lParam)
|
|
1491
1567
|
_PostMessageW(hWnd, Msg, wParam, lParam)
|
|
1492
1568
|
|
|
1569
|
+
|
|
1493
1570
|
PostMessage = GuessStringType(PostMessageA, PostMessageW)
|
|
1494
1571
|
|
|
1572
|
+
|
|
1495
1573
|
# BOOL PostThreadMessage(
|
|
1496
1574
|
# DWORD idThread,
|
|
1497
1575
|
# UINT Msg,
|
|
1498
1576
|
# WPARAM wParam,
|
|
1499
1577
|
# LPARAM lParam
|
|
1500
1578
|
# );
|
|
1501
|
-
def PostThreadMessageA(idThread, Msg, wParam
|
|
1579
|
+
def PostThreadMessageA(idThread, Msg, wParam=0, lParam=0):
|
|
1502
1580
|
_PostThreadMessageA = windll.user32.PostThreadMessageA
|
|
1503
1581
|
_PostThreadMessageA.argtypes = [DWORD, UINT, WPARAM, LPARAM]
|
|
1504
|
-
_PostThreadMessageA.restype
|
|
1582
|
+
_PostThreadMessageA.restype = bool
|
|
1505
1583
|
_PostThreadMessageA.errcheck = RaiseIfZero
|
|
1506
1584
|
|
|
1507
1585
|
wParam = MAKE_WPARAM(wParam)
|
|
1508
1586
|
lParam = MAKE_LPARAM(lParam)
|
|
1509
1587
|
_PostThreadMessageA(idThread, Msg, wParam, lParam)
|
|
1510
1588
|
|
|
1511
|
-
|
|
1589
|
+
|
|
1590
|
+
def PostThreadMessageW(idThread, Msg, wParam=0, lParam=0):
|
|
1512
1591
|
_PostThreadMessageW = windll.user32.PostThreadMessageW
|
|
1513
1592
|
_PostThreadMessageW.argtypes = [DWORD, UINT, WPARAM, LPARAM]
|
|
1514
|
-
_PostThreadMessageW.restype
|
|
1593
|
+
_PostThreadMessageW.restype = bool
|
|
1515
1594
|
_PostThreadMessageW.errcheck = RaiseIfZero
|
|
1516
1595
|
|
|
1517
1596
|
wParam = MAKE_WPARAM(wParam)
|
|
1518
1597
|
lParam = MAKE_LPARAM(lParam)
|
|
1519
1598
|
_PostThreadMessageW(idThread, Msg, wParam, lParam)
|
|
1520
1599
|
|
|
1600
|
+
|
|
1521
1601
|
PostThreadMessage = GuessStringType(PostThreadMessageA, PostThreadMessageW)
|
|
1522
1602
|
|
|
1603
|
+
|
|
1523
1604
|
# LRESULT c(
|
|
1524
1605
|
# HWND hWnd,
|
|
1525
1606
|
# UINT Msg,
|
|
@@ -1529,10 +1610,10 @@ PostThreadMessage = GuessStringType(PostThreadMessageA, PostThreadMessageW)
|
|
|
1529
1610
|
# UINT uTimeout,
|
|
1530
1611
|
# PDWORD_PTR lpdwResult
|
|
1531
1612
|
# );
|
|
1532
|
-
def SendMessageTimeoutA(hWnd, Msg, wParam
|
|
1613
|
+
def SendMessageTimeoutA(hWnd, Msg, wParam=0, lParam=0, fuFlags=0, uTimeout=0):
|
|
1533
1614
|
_SendMessageTimeoutA = windll.user32.SendMessageTimeoutA
|
|
1534
1615
|
_SendMessageTimeoutA.argtypes = [HWND, UINT, WPARAM, LPARAM, UINT, UINT, PDWORD_PTR]
|
|
1535
|
-
_SendMessageTimeoutA.restype
|
|
1616
|
+
_SendMessageTimeoutA.restype = LRESULT
|
|
1536
1617
|
_SendMessageTimeoutA.errcheck = RaiseIfZero
|
|
1537
1618
|
|
|
1538
1619
|
wParam = MAKE_WPARAM(wParam)
|
|
@@ -1541,10 +1622,11 @@ def SendMessageTimeoutA(hWnd, Msg, wParam = 0, lParam = 0, fuFlags = 0, uTimeout
|
|
|
1541
1622
|
_SendMessageTimeoutA(hWnd, Msg, wParam, lParam, fuFlags, uTimeout, byref(dwResult))
|
|
1542
1623
|
return dwResult.value
|
|
1543
1624
|
|
|
1544
|
-
|
|
1625
|
+
|
|
1626
|
+
def SendMessageTimeoutW(hWnd, Msg, wParam=0, lParam=0):
|
|
1545
1627
|
_SendMessageTimeoutW = windll.user32.SendMessageTimeoutW
|
|
1546
1628
|
_SendMessageTimeoutW.argtypes = [HWND, UINT, WPARAM, LPARAM, UINT, UINT, PDWORD_PTR]
|
|
1547
|
-
_SendMessageTimeoutW.restype
|
|
1629
|
+
_SendMessageTimeoutW.restype = LRESULT
|
|
1548
1630
|
_SendMessageTimeoutW.errcheck = RaiseIfZero
|
|
1549
1631
|
|
|
1550
1632
|
wParam = MAKE_WPARAM(wParam)
|
|
@@ -1553,36 +1635,41 @@ def SendMessageTimeoutW(hWnd, Msg, wParam = 0, lParam = 0):
|
|
|
1553
1635
|
_SendMessageTimeoutW(hWnd, Msg, wParam, lParam, fuFlags, uTimeout, byref(dwResult))
|
|
1554
1636
|
return dwResult.value
|
|
1555
1637
|
|
|
1638
|
+
|
|
1556
1639
|
SendMessageTimeout = GuessStringType(SendMessageTimeoutA, SendMessageTimeoutW)
|
|
1557
1640
|
|
|
1641
|
+
|
|
1558
1642
|
# BOOL SendNotifyMessage(
|
|
1559
1643
|
# HWND hWnd,
|
|
1560
1644
|
# UINT Msg,
|
|
1561
1645
|
# WPARAM wParam,
|
|
1562
1646
|
# LPARAM lParam
|
|
1563
1647
|
# );
|
|
1564
|
-
def SendNotifyMessageA(hWnd, Msg, wParam
|
|
1648
|
+
def SendNotifyMessageA(hWnd, Msg, wParam=0, lParam=0):
|
|
1565
1649
|
_SendNotifyMessageA = windll.user32.SendNotifyMessageA
|
|
1566
1650
|
_SendNotifyMessageA.argtypes = [HWND, UINT, WPARAM, LPARAM]
|
|
1567
|
-
_SendNotifyMessageA.restype
|
|
1651
|
+
_SendNotifyMessageA.restype = bool
|
|
1568
1652
|
_SendNotifyMessageA.errcheck = RaiseIfZero
|
|
1569
1653
|
|
|
1570
1654
|
wParam = MAKE_WPARAM(wParam)
|
|
1571
1655
|
lParam = MAKE_LPARAM(lParam)
|
|
1572
1656
|
_SendNotifyMessageA(hWnd, Msg, wParam, lParam)
|
|
1573
1657
|
|
|
1574
|
-
|
|
1658
|
+
|
|
1659
|
+
def SendNotifyMessageW(hWnd, Msg, wParam=0, lParam=0):
|
|
1575
1660
|
_SendNotifyMessageW = windll.user32.SendNotifyMessageW
|
|
1576
1661
|
_SendNotifyMessageW.argtypes = [HWND, UINT, WPARAM, LPARAM]
|
|
1577
|
-
_SendNotifyMessageW.restype
|
|
1662
|
+
_SendNotifyMessageW.restype = bool
|
|
1578
1663
|
_SendNotifyMessageW.errcheck = RaiseIfZero
|
|
1579
1664
|
|
|
1580
1665
|
wParam = MAKE_WPARAM(wParam)
|
|
1581
1666
|
lParam = MAKE_LPARAM(lParam)
|
|
1582
1667
|
_SendNotifyMessageW(hWnd, Msg, wParam, lParam)
|
|
1583
1668
|
|
|
1669
|
+
|
|
1584
1670
|
SendNotifyMessage = GuessStringType(SendNotifyMessageA, SendNotifyMessageW)
|
|
1585
1671
|
|
|
1672
|
+
|
|
1586
1673
|
# LRESULT SendDlgItemMessage(
|
|
1587
1674
|
# HWND hDlg,
|
|
1588
1675
|
# int nIDDlgItem,
|
|
@@ -1590,78 +1677,88 @@ SendNotifyMessage = GuessStringType(SendNotifyMessageA, SendNotifyMessageW)
|
|
|
1590
1677
|
# WPARAM wParam,
|
|
1591
1678
|
# LPARAM lParam
|
|
1592
1679
|
# );
|
|
1593
|
-
def SendDlgItemMessageA(hDlg, nIDDlgItem, Msg, wParam
|
|
1680
|
+
def SendDlgItemMessageA(hDlg, nIDDlgItem, Msg, wParam=0, lParam=0):
|
|
1594
1681
|
_SendDlgItemMessageA = windll.user32.SendDlgItemMessageA
|
|
1595
1682
|
_SendDlgItemMessageA.argtypes = [HWND, ctypes.c_int, UINT, WPARAM, LPARAM]
|
|
1596
|
-
_SendDlgItemMessageA.restype
|
|
1683
|
+
_SendDlgItemMessageA.restype = LRESULT
|
|
1597
1684
|
|
|
1598
1685
|
wParam = MAKE_WPARAM(wParam)
|
|
1599
1686
|
lParam = MAKE_LPARAM(lParam)
|
|
1600
1687
|
return _SendDlgItemMessageA(hDlg, nIDDlgItem, Msg, wParam, lParam)
|
|
1601
1688
|
|
|
1602
|
-
|
|
1689
|
+
|
|
1690
|
+
def SendDlgItemMessageW(hDlg, nIDDlgItem, Msg, wParam=0, lParam=0):
|
|
1603
1691
|
_SendDlgItemMessageW = windll.user32.SendDlgItemMessageW
|
|
1604
1692
|
_SendDlgItemMessageW.argtypes = [HWND, ctypes.c_int, UINT, WPARAM, LPARAM]
|
|
1605
|
-
_SendDlgItemMessageW.restype
|
|
1693
|
+
_SendDlgItemMessageW.restype = LRESULT
|
|
1606
1694
|
|
|
1607
1695
|
wParam = MAKE_WPARAM(wParam)
|
|
1608
1696
|
lParam = MAKE_LPARAM(lParam)
|
|
1609
1697
|
return _SendDlgItemMessageW(hDlg, nIDDlgItem, Msg, wParam, lParam)
|
|
1610
1698
|
|
|
1699
|
+
|
|
1611
1700
|
SendDlgItemMessage = GuessStringType(SendDlgItemMessageA, SendDlgItemMessageW)
|
|
1612
1701
|
|
|
1702
|
+
|
|
1613
1703
|
# DWORD WINAPI WaitForInputIdle(
|
|
1614
1704
|
# _In_ HANDLE hProcess,
|
|
1615
1705
|
# _In_ DWORD dwMilliseconds
|
|
1616
1706
|
# );
|
|
1617
|
-
def WaitForInputIdle(hProcess, dwMilliseconds
|
|
1707
|
+
def WaitForInputIdle(hProcess, dwMilliseconds=INFINITE):
|
|
1618
1708
|
_WaitForInputIdle = windll.user32.WaitForInputIdle
|
|
1619
1709
|
_WaitForInputIdle.argtypes = [HANDLE, DWORD]
|
|
1620
|
-
_WaitForInputIdle.restype
|
|
1710
|
+
_WaitForInputIdle.restype = DWORD
|
|
1621
1711
|
|
|
1622
1712
|
r = _WaitForInputIdle(hProcess, dwMilliseconds)
|
|
1623
1713
|
if r == WAIT_FAILED:
|
|
1624
1714
|
raise ctypes.WinError()
|
|
1625
1715
|
return r
|
|
1626
1716
|
|
|
1717
|
+
|
|
1627
1718
|
# UINT RegisterWindowMessage(
|
|
1628
1719
|
# LPCTSTR lpString
|
|
1629
1720
|
# );
|
|
1630
1721
|
def RegisterWindowMessageA(lpString):
|
|
1631
1722
|
_RegisterWindowMessageA = windll.user32.RegisterWindowMessageA
|
|
1632
1723
|
_RegisterWindowMessageA.argtypes = [LPSTR]
|
|
1633
|
-
_RegisterWindowMessageA.restype
|
|
1724
|
+
_RegisterWindowMessageA.restype = UINT
|
|
1634
1725
|
_RegisterWindowMessageA.errcheck = RaiseIfZero
|
|
1635
1726
|
return _RegisterWindowMessageA(lpString)
|
|
1636
1727
|
|
|
1728
|
+
|
|
1637
1729
|
def RegisterWindowMessageW(lpString):
|
|
1638
1730
|
_RegisterWindowMessageW = windll.user32.RegisterWindowMessageW
|
|
1639
1731
|
_RegisterWindowMessageW.argtypes = [LPWSTR]
|
|
1640
|
-
_RegisterWindowMessageW.restype
|
|
1732
|
+
_RegisterWindowMessageW.restype = UINT
|
|
1641
1733
|
_RegisterWindowMessageW.errcheck = RaiseIfZero
|
|
1642
1734
|
return _RegisterWindowMessageW(lpString)
|
|
1643
1735
|
|
|
1736
|
+
|
|
1644
1737
|
RegisterWindowMessage = GuessStringType(RegisterWindowMessageA, RegisterWindowMessageW)
|
|
1645
1738
|
|
|
1739
|
+
|
|
1646
1740
|
# UINT RegisterClipboardFormat(
|
|
1647
1741
|
# LPCTSTR lpString
|
|
1648
1742
|
# );
|
|
1649
1743
|
def RegisterClipboardFormatA(lpString):
|
|
1650
1744
|
_RegisterClipboardFormatA = windll.user32.RegisterClipboardFormatA
|
|
1651
1745
|
_RegisterClipboardFormatA.argtypes = [LPSTR]
|
|
1652
|
-
_RegisterClipboardFormatA.restype
|
|
1746
|
+
_RegisterClipboardFormatA.restype = UINT
|
|
1653
1747
|
_RegisterClipboardFormatA.errcheck = RaiseIfZero
|
|
1654
1748
|
return _RegisterClipboardFormatA(lpString)
|
|
1655
1749
|
|
|
1750
|
+
|
|
1656
1751
|
def RegisterClipboardFormatW(lpString):
|
|
1657
1752
|
_RegisterClipboardFormatW = windll.user32.RegisterClipboardFormatW
|
|
1658
1753
|
_RegisterClipboardFormatW.argtypes = [LPWSTR]
|
|
1659
|
-
_RegisterClipboardFormatW.restype
|
|
1754
|
+
_RegisterClipboardFormatW.restype = UINT
|
|
1660
1755
|
_RegisterClipboardFormatW.errcheck = RaiseIfZero
|
|
1661
1756
|
return _RegisterClipboardFormatW(lpString)
|
|
1662
1757
|
|
|
1758
|
+
|
|
1663
1759
|
RegisterClipboardFormat = GuessStringType(RegisterClipboardFormatA, RegisterClipboardFormatW)
|
|
1664
1760
|
|
|
1761
|
+
|
|
1665
1762
|
# HANDLE WINAPI GetProp(
|
|
1666
1763
|
# __in HWND hWnd,
|
|
1667
1764
|
# __in LPCTSTR lpString
|
|
@@ -1669,17 +1766,20 @@ RegisterClipboardFormat = GuessStringType(RegisterClipboardFormatA, RegisterClip
|
|
|
1669
1766
|
def GetPropA(hWnd, lpString):
|
|
1670
1767
|
_GetPropA = windll.user32.GetPropA
|
|
1671
1768
|
_GetPropA.argtypes = [HWND, LPSTR]
|
|
1672
|
-
_GetPropA.restype
|
|
1769
|
+
_GetPropA.restype = HANDLE
|
|
1673
1770
|
return _GetPropA(hWnd, lpString)
|
|
1674
1771
|
|
|
1772
|
+
|
|
1675
1773
|
def GetPropW(hWnd, lpString):
|
|
1676
1774
|
_GetPropW = windll.user32.GetPropW
|
|
1677
1775
|
_GetPropW.argtypes = [HWND, LPWSTR]
|
|
1678
|
-
_GetPropW.restype
|
|
1776
|
+
_GetPropW.restype = HANDLE
|
|
1679
1777
|
return _GetPropW(hWnd, lpString)
|
|
1680
1778
|
|
|
1779
|
+
|
|
1681
1780
|
GetProp = GuessStringType(GetPropA, GetPropW)
|
|
1682
1781
|
|
|
1782
|
+
|
|
1683
1783
|
# BOOL WINAPI SetProp(
|
|
1684
1784
|
# __in HWND hWnd,
|
|
1685
1785
|
# __in LPCTSTR lpString,
|
|
@@ -1688,19 +1788,22 @@ GetProp = GuessStringType(GetPropA, GetPropW)
|
|
|
1688
1788
|
def SetPropA(hWnd, lpString, hData):
|
|
1689
1789
|
_SetPropA = windll.user32.SetPropA
|
|
1690
1790
|
_SetPropA.argtypes = [HWND, LPSTR, HANDLE]
|
|
1691
|
-
_SetPropA.restype
|
|
1791
|
+
_SetPropA.restype = BOOL
|
|
1692
1792
|
_SetPropA.errcheck = RaiseIfZero
|
|
1693
1793
|
_SetPropA(hWnd, lpString, hData)
|
|
1694
1794
|
|
|
1795
|
+
|
|
1695
1796
|
def SetPropW(hWnd, lpString, hData):
|
|
1696
1797
|
_SetPropW = windll.user32.SetPropW
|
|
1697
1798
|
_SetPropW.argtypes = [HWND, LPWSTR, HANDLE]
|
|
1698
|
-
_SetPropW.restype
|
|
1799
|
+
_SetPropW.restype = BOOL
|
|
1699
1800
|
_SetPropW.errcheck = RaiseIfZero
|
|
1700
1801
|
_SetPropW(hWnd, lpString, hData)
|
|
1701
1802
|
|
|
1803
|
+
|
|
1702
1804
|
SetProp = GuessStringType(SetPropA, SetPropW)
|
|
1703
1805
|
|
|
1806
|
+
|
|
1704
1807
|
# HANDLE WINAPI RemoveProp(
|
|
1705
1808
|
# __in HWND hWnd,
|
|
1706
1809
|
# __in LPCTSTR lpString
|
|
@@ -1708,20 +1811,22 @@ SetProp = GuessStringType(SetPropA, SetPropW)
|
|
|
1708
1811
|
def RemovePropA(hWnd, lpString):
|
|
1709
1812
|
_RemovePropA = windll.user32.RemovePropA
|
|
1710
1813
|
_RemovePropA.argtypes = [HWND, LPSTR]
|
|
1711
|
-
_RemovePropA.restype
|
|
1814
|
+
_RemovePropA.restype = HANDLE
|
|
1712
1815
|
return _RemovePropA(hWnd, lpString)
|
|
1713
1816
|
|
|
1817
|
+
|
|
1714
1818
|
def RemovePropW(hWnd, lpString):
|
|
1715
1819
|
_RemovePropW = windll.user32.RemovePropW
|
|
1716
1820
|
_RemovePropW.argtypes = [HWND, LPWSTR]
|
|
1717
|
-
_RemovePropW.restype
|
|
1821
|
+
_RemovePropW.restype = HANDLE
|
|
1718
1822
|
return _RemovePropW(hWnd, lpString)
|
|
1719
1823
|
|
|
1824
|
+
|
|
1720
1825
|
RemoveProp = GuessStringType(RemovePropA, RemovePropW)
|
|
1721
1826
|
|
|
1722
|
-
|
|
1827
|
+
# ==============================================================================
|
|
1723
1828
|
# This calculates the list of exported symbols.
|
|
1724
1829
|
_all = set(vars().keys()).difference(_all)
|
|
1725
|
-
__all__ = [_x for _x in _all if not _x.startswith(
|
|
1830
|
+
__all__ = [_x for _x in _all if not _x.startswith("_")]
|
|
1726
1831
|
__all__.sort()
|
|
1727
|
-
|
|
1832
|
+
# ==============================================================================
|