py2docfx 0.1.15.dev2025501__py3-none-any.whl → 0.1.15.dev2038808__py3-none-any.whl

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.
Files changed (597) hide show
  1. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_core_metadata.py +21 -5
  2. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +2 -0
  3. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/ccompiler.py +5 -2
  4. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/__init__.py +27 -8
  5. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build.py +1 -6
  6. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_clib.py +1 -9
  7. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_ext.py +1 -8
  8. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
  9. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
  10. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/install.py +8 -17
  11. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compat/numpy.py +2 -0
  12. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +8 -5
  13. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +1 -1
  14. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +15 -1
  15. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/dist.py +2 -1
  16. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -10
  17. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +60 -5
  18. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/unixccompiler.py +6 -0
  19. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/util.py +7 -6
  20. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_normalization.py +29 -0
  21. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +1 -1
  22. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py +613 -0
  23. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +2 -2
  24. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +25 -594
  25. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +6 -6
  26. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +282 -223
  27. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +22 -9
  28. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +16 -13
  29. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/util.py +0 -9
  30. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +40 -9
  31. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +6 -2
  32. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +48 -11
  33. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +31 -1
  34. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +222 -129
  35. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +30 -3
  36. py2docfx/venv/basevenv/Lib/site-packages/setuptools/dist.py +115 -9
  37. py2docfx/venv/basevenv/Lib/site-packages/setuptools/msvc.py +12 -3
  38. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +246 -13
  39. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +93 -8
  40. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_meta.py +17 -4
  41. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_core_metadata.py +45 -0
  42. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +24 -4
  43. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_sdist.py +13 -1
  44. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/__init__.py +1 -1
  45. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any_pb2.py +4 -4
  46. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/api_pb2.py +4 -4
  47. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/compiler/plugin_pb2.py +4 -4
  48. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_database.py +22 -4
  49. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pb2.py +82 -35
  50. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/duration_pb2.py +4 -4
  51. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/empty_pb2.py +4 -4
  52. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/field_mask_pb2.py +4 -4
  53. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/builder.py +4 -3
  54. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/containers.py +13 -0
  55. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/decoder.py +62 -115
  56. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_edition_defaults.py +1 -1
  57. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_message.py +15 -18
  58. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/testing_refleaks.py +4 -1
  59. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/type_checkers.py +5 -0
  60. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/well_known_types.py +3 -3
  61. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/json_format.py +25 -9
  62. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message.py +26 -0
  63. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message_factory.py +0 -63
  64. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto.py +38 -1
  65. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto_text.py +129 -0
  66. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/reflection.py +0 -49
  67. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/runtime_version.py +3 -3
  68. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/source_context_pb2.py +4 -4
  69. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/struct_pb2.py +4 -4
  70. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/symbol_database.py +0 -18
  71. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/text_format.py +8 -3
  72. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/timestamp_pb2.py +4 -4
  73. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/type_pb2.py +4 -4
  74. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/unknown_fields.py +3 -4
  75. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/wrappers_pb2.py +4 -4
  76. py2docfx/venv/venv1/Lib/site-packages/msal/__init__.py +1 -1
  77. py2docfx/venv/venv1/Lib/site-packages/msal/application.py +51 -17
  78. py2docfx/venv/venv1/Lib/site-packages/msal/broker.py +18 -4
  79. py2docfx/venv/venv1/Lib/site-packages/msal/cloudshell.py +5 -1
  80. py2docfx/venv/venv1/Lib/site-packages/msal/managed_identity.py +5 -4
  81. py2docfx/venv/venv1/Lib/site-packages/msal/sku.py +6 -0
  82. py2docfx/venv/venv1/Lib/site-packages/msal/token_cache.py +31 -10
  83. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/__init__.py +2 -3
  84. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/cache_lock.py +4 -1
  85. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/filelock.py +62 -0
  86. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/libsecret.py +1 -1
  87. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/token_cache.py +7 -1
  88. py2docfx/venv/venv1/Lib/site-packages/setuptools/_core_metadata.py +21 -5
  89. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +2 -0
  90. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/ccompiler.py +5 -2
  91. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/__init__.py +27 -8
  92. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build.py +1 -6
  93. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_clib.py +1 -9
  94. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_ext.py +1 -8
  95. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
  96. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
  97. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/install.py +8 -17
  98. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compat/numpy.py +2 -0
  99. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +8 -5
  100. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +1 -1
  101. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +15 -1
  102. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/dist.py +2 -1
  103. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -10
  104. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +60 -5
  105. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/unixccompiler.py +6 -0
  106. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/util.py +7 -6
  107. py2docfx/venv/venv1/Lib/site-packages/setuptools/_normalization.py +29 -0
  108. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +1 -1
  109. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py +613 -0
  110. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +2 -2
  111. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +25 -594
  112. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +6 -6
  113. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +282 -223
  114. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +22 -9
  115. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +16 -13
  116. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/util.py +0 -9
  117. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +40 -9
  118. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +6 -2
  119. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +48 -11
  120. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +31 -1
  121. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +222 -129
  122. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +30 -3
  123. py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +115 -9
  124. py2docfx/venv/venv1/Lib/site-packages/setuptools/msvc.py +12 -3
  125. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +246 -13
  126. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +93 -8
  127. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_meta.py +17 -4
  128. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_core_metadata.py +45 -0
  129. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +24 -4
  130. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_sdist.py +13 -1
  131. {py2docfx-0.1.15.dev2025501.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/METADATA +1 -1
  132. {py2docfx-0.1.15.dev2025501.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/RECORD +134 -590
  133. py2docfx/venv/venv1/Lib/site-packages/adodbapi/__init__.py +0 -82
  134. py2docfx/venv/venv1/Lib/site-packages/adodbapi/ado_consts.py +0 -283
  135. py2docfx/venv/venv1/Lib/site-packages/adodbapi/adodbapi.py +0 -1153
  136. py2docfx/venv/venv1/Lib/site-packages/adodbapi/apibase.py +0 -723
  137. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_print.py +0 -72
  138. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_table_names.py +0 -21
  139. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_read.py +0 -41
  140. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_write.py +0 -41
  141. py2docfx/venv/venv1/Lib/site-packages/adodbapi/is64bit.py +0 -34
  142. py2docfx/venv/venv1/Lib/site-packages/adodbapi/process_connect_string.py +0 -137
  143. py2docfx/venv/venv1/Lib/site-packages/adodbapi/schema_table.py +0 -16
  144. py2docfx/venv/venv1/Lib/site-packages/adodbapi/setup.py +0 -68
  145. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitest.py +0 -1547
  146. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitestconfig.py +0 -184
  147. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/dbapi20.py +0 -879
  148. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/is64bit.py +0 -34
  149. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/setuptestframework.py +0 -98
  150. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/test_adodbapi_dbapi20.py +0 -195
  151. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/tryconnection.py +0 -30
  152. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/_parameterized.py +0 -420
  153. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/service.py +0 -213
  154. py2docfx/venv/venv1/Lib/site-packages/isapi/__init__.py +0 -39
  155. py2docfx/venv/venv1/Lib/site-packages/isapi/install.py +0 -809
  156. py2docfx/venv/venv1/Lib/site-packages/isapi/isapicon.py +0 -121
  157. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/advanced.py +0 -218
  158. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector.py +0 -116
  159. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_asynch.py +0 -85
  160. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_with_filter.py +0 -162
  161. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/test.py +0 -195
  162. py2docfx/venv/venv1/Lib/site-packages/isapi/simple.py +0 -73
  163. py2docfx/venv/venv1/Lib/site-packages/isapi/test/extension_simple.py +0 -114
  164. py2docfx/venv/venv1/Lib/site-packages/isapi/threaded_extension.py +0 -191
  165. py2docfx/venv/venv1/Lib/site-packages/portalocker/__about__.py +0 -6
  166. py2docfx/venv/venv1/Lib/site-packages/portalocker/__init__.py +0 -79
  167. py2docfx/venv/venv1/Lib/site-packages/portalocker/__main__.py +0 -122
  168. py2docfx/venv/venv1/Lib/site-packages/portalocker/constants.py +0 -59
  169. py2docfx/venv/venv1/Lib/site-packages/portalocker/exceptions.py +0 -27
  170. py2docfx/venv/venv1/Lib/site-packages/portalocker/portalocker.py +0 -154
  171. py2docfx/venv/venv1/Lib/site-packages/portalocker/redis.py +0 -236
  172. py2docfx/venv/venv1/Lib/site-packages/portalocker/utils.py +0 -569
  173. py2docfx/venv/venv1/Lib/site-packages/pythoncom.py +0 -4
  174. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/basictimerapp.py +0 -258
  175. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/customprint.py +0 -183
  176. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/demoutils.py +0 -63
  177. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dlgappdemo.py +0 -51
  178. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dojobapp.py +0 -71
  179. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/helloapp.py +0 -53
  180. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/cmdserver.py +0 -113
  181. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/createwin.py +0 -114
  182. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/demoutils.py +0 -65
  183. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dibdemo.py +0 -73
  184. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dlgtest.py +0 -145
  185. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dyndlg.py +0 -104
  186. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/fontdemo.py +0 -85
  187. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/guidemo.py +0 -53
  188. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/hiertest.py +0 -138
  189. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/menutest.py +0 -13
  190. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/objdoc.py +0 -57
  191. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/demoutils.py +0 -63
  192. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/flash.py +0 -95
  193. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/msoffice.py +0 -159
  194. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxserialtest.py +0 -132
  195. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxtest.py +0 -243
  196. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/webbrowser.py +0 -72
  197. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/openGLDemo.py +0 -415
  198. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/progressbar.py +0 -105
  199. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/sliderdemo.py +0 -76
  200. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/splittst.py +0 -79
  201. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/threadedgui.py +0 -189
  202. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/toolbar.py +0 -105
  203. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/__init__.py +0 -3
  204. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/__init__.py +0 -133
  205. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/configui.py +0 -34
  206. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgcon.py +0 -31
  207. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgpyapp.py +0 -48
  208. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/debugger.py +0 -1097
  209. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/fail.py +0 -54
  210. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/__init__.py +0 -0
  211. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/ideoptions.py +0 -136
  212. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/list.py +0 -146
  213. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/login.py +0 -155
  214. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/status.py +0 -242
  215. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/DockingBar.py +0 -676
  216. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/__init__.py +0 -0
  217. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/__init__.py +0 -0
  218. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/app.py +0 -411
  219. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/bitmap.py +0 -168
  220. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/cmdline.py +0 -54
  221. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dbgcommands.py +0 -188
  222. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dlgappcore.py +0 -76
  223. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/ModuleBrowser.py +0 -235
  224. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/__init__.py +0 -105
  225. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color/__init__.py +0 -0
  226. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color/coloreditor.py +0 -646
  227. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/configui.py +0 -299
  228. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/document.py +0 -379
  229. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/editor.py +0 -511
  230. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/frame.py +0 -74
  231. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/template.py +0 -59
  232. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/vss.py +0 -104
  233. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/help.py +0 -173
  234. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/interact.py +0 -995
  235. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpyapp.py +0 -552
  236. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpydde.py +0 -65
  237. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/scriptutils.py +0 -684
  238. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/sgrepmdi.py +0 -749
  239. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/startup.py +0 -70
  240. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/stdin.py +0 -172
  241. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/toolmenu.py +0 -279
  242. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/window.py +0 -14
  243. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/winout.py +0 -589
  244. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoExpand.py +0 -95
  245. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoIndent.py +0 -536
  246. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/CallTips.py +0 -216
  247. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/FormatParagraph.py +0 -166
  248. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/IdleHistory.py +0 -87
  249. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/PyParse.py +0 -585
  250. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/__init__.py +0 -1
  251. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/__init__.py +0 -0
  252. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/activex.py +0 -79
  253. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/afxres.py +0 -501
  254. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/dialog.py +0 -277
  255. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/docview.py +0 -151
  256. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/object.py +0 -66
  257. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/thread.py +0 -25
  258. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/window.py +0 -50
  259. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/IDLEenvironment.py +0 -593
  260. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/__init__.py +0 -1
  261. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/bindings.py +0 -180
  262. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/config.py +0 -363
  263. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/configui.py +0 -291
  264. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/control.py +0 -565
  265. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/document.py +0 -312
  266. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/find.py +0 -511
  267. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/formatter.py +0 -704
  268. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/keycodes.py +0 -190
  269. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/scintillacon.py +0 -3083
  270. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/view.py +0 -841
  271. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/TraceCollector.py +0 -79
  272. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/__init__.py +0 -0
  273. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browseProjects.py +0 -323
  274. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browser.py +0 -494
  275. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/hierlist.py +0 -353
  276. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regedit.py +0 -382
  277. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regpy.py +0 -80
  278. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupRead_BackupWrite.py +0 -119
  279. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupSeek_streamheaders.py +0 -137
  280. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CopyFileEx.py +0 -57
  281. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CreateFileTransacted_MiniVersion.py +0 -122
  282. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtFormatMessage.py +0 -83
  283. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_pull.py +0 -28
  284. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_push.py +0 -32
  285. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/FileSecurityTest.py +0 -137
  286. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/GetSaveFileName.py +0 -43
  287. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/NetValidatePasswordPolicy.py +0 -127
  288. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/OpenEncryptedFileRaw.py +0 -66
  289. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegCreateKeyTransacted.py +0 -60
  290. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegRestoreKey.py +0 -71
  291. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/SystemParametersInfo.py +0 -210
  292. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/c_extension/setup.py +0 -26
  293. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeclient.py +0 -18
  294. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeserver.py +0 -42
  295. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/desktopmanager.py +0 -246
  296. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/eventLogDemo.py +0 -143
  297. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/getfilever.py +0 -33
  298. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/mmapfile_demo.py +0 -101
  299. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/cat.py +0 -17
  300. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/runproc.py +0 -114
  301. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/print_desktop.py +0 -113
  302. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/rastest.py +0 -166
  303. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/GetTokenInformation.py +0 -110
  304. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/account_rights.py +0 -49
  305. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/explicit_entries.py +0 -170
  306. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/get_policy_info.py +0 -39
  307. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/list_rights.py +0 -35
  308. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/localized_names.py +0 -70
  309. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsaregevent.py +0 -14
  310. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsastore.py +0 -12
  311. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/query_information.py +0 -25
  312. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsave_sa.py +0 -61
  313. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsecurity.py +0 -36
  314. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sa_inherit.py +0 -8
  315. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/security_enums.py +0 -336
  316. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_audit.py +0 -106
  317. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_owner.py +0 -73
  318. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_policy_info.py +0 -25
  319. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setkernelobjectsecurity.py +0 -134
  320. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setnamedsecurityinfo.py +0 -131
  321. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setsecurityinfo.py +0 -131
  322. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setuserobjectsecurity.py +0 -102
  323. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/fetch_url.py +0 -158
  324. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/simple_auth.py +0 -72
  325. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/socket_server.py +0 -199
  326. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/validate_password.py +0 -41
  327. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/nativePipeTestService.py +0 -63
  328. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestService.py +0 -185
  329. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestServiceClient.py +0 -158
  330. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/serviceEvents.py +0 -98
  331. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/timer_demo.py +0 -72
  332. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboardDemo.py +0 -155
  333. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboard_bitmapdemo.py +0 -117
  334. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32comport_demo.py +0 -174
  335. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32console_demo.py +0 -132
  336. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32cred_demo.py +0 -82
  337. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32fileDemo.py +0 -41
  338. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_demo.py +0 -177
  339. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_devicenotify.py +0 -106
  340. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_dialog.py +0 -445
  341. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_menu.py +0 -464
  342. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_taskbar.py +0 -136
  343. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32netdemo.py +0 -272
  344. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32rcparser_demo.py +0 -86
  345. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32servicedemo.py +0 -23
  346. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32ts_logoff_disconnected.py +0 -25
  347. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/testwnet.py +0 -123
  348. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/winnetwk.py +0 -100
  349. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/winprocess.py +0 -230
  350. py2docfx/venv/venv1/Lib/site-packages/win32/lib/_win32verstamp_pywin32ctypes.py +0 -164
  351. py2docfx/venv/venv1/Lib/site-packages/win32/lib/afxres.py +0 -8
  352. py2docfx/venv/venv1/Lib/site-packages/win32/lib/commctrl.py +0 -1551
  353. py2docfx/venv/venv1/Lib/site-packages/win32/lib/mmsystem.py +0 -956
  354. py2docfx/venv/venv1/Lib/site-packages/win32/lib/netbios.py +0 -293
  355. py2docfx/venv/venv1/Lib/site-packages/win32/lib/ntsecuritycon.py +0 -731
  356. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_bootstrap.py +0 -21
  357. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_testutil.py +0 -291
  358. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywintypes.py +0 -124
  359. py2docfx/venv/venv1/Lib/site-packages/win32/lib/rasutil.py +0 -40
  360. py2docfx/venv/venv1/Lib/site-packages/win32/lib/regcheck.py +0 -161
  361. py2docfx/venv/venv1/Lib/site-packages/win32/lib/regutil.py +0 -395
  362. py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspi.py +0 -413
  363. py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspicon.py +0 -477
  364. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win2kras.py +0 -14
  365. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32con.py +0 -5064
  366. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32cryptcon.py +0 -1922
  367. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32evtlogutil.py +0 -225
  368. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32gui_struct.py +0 -957
  369. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32inetcon.py +0 -1086
  370. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32netcon.py +0 -627
  371. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhquery.py +0 -570
  372. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhutil.py +0 -212
  373. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32rcparser.py +0 -674
  374. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32serviceutil.py +0 -1073
  375. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32timezone.py +0 -1201
  376. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32traceutil.py +0 -59
  377. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32verstamp.py +0 -235
  378. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winerror.py +0 -7362
  379. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winioctlcon.py +0 -1079
  380. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winnt.py +0 -1347
  381. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winperf.py +0 -236
  382. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winxptheme.py +0 -8
  383. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/ControlService.py +0 -594
  384. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/BrandProject.py +0 -97
  385. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/bulkstamp.py +0 -156
  386. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/vssutil.py +0 -201
  387. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/backupEventLog.py +0 -46
  388. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/h2py.py +0 -194
  389. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/killProcName.py +0 -62
  390. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_postinstall.py +0 -733
  391. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_testall.py +0 -120
  392. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/rasutil.py +0 -98
  393. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/regsetup.py +0 -607
  394. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/setup_d.py +0 -111
  395. py2docfx/venv/venv1/Lib/site-packages/win32/test/handles.py +0 -175
  396. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_clipboard.py +0 -137
  397. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_exceptions.py +0 -213
  398. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_odbc.py +0 -264
  399. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_pywintypes.py +0 -111
  400. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_security.py +0 -166
  401. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_sspi.py +0 -229
  402. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32api.py +0 -273
  403. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32clipboard.py +0 -59
  404. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32cred.py +0 -91
  405. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32crypt.py +0 -144
  406. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32event.py +0 -119
  407. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32file.py +0 -1096
  408. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32gui.py +0 -227
  409. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32guistruct.py +0 -333
  410. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32inet.py +0 -108
  411. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32net.py +0 -23
  412. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32pipe.py +0 -148
  413. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32print.py +0 -24
  414. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32profile.py +0 -19
  415. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32rcparser.py +0 -70
  416. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32timezone.py +0 -16
  417. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32trace.py +0 -366
  418. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32ts.py +0 -19
  419. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32wnet.py +0 -174
  420. py2docfx/venv/venv1/Lib/site-packages/win32/test/testall.py +0 -223
  421. py2docfx/venv/venv1/Lib/site-packages/win32/winxpgui.py +0 -13
  422. py2docfx/venv/venv1/Lib/site-packages/win32com/__init__.py +0 -134
  423. py2docfx/venv/venv1/Lib/site-packages/win32com/client/CLSIDToClass.py +0 -60
  424. py2docfx/venv/venv1/Lib/site-packages/win32com/client/__init__.py +0 -717
  425. py2docfx/venv/venv1/Lib/site-packages/win32com/client/build.py +0 -771
  426. py2docfx/venv/venv1/Lib/site-packages/win32com/client/combrowse.py +0 -604
  427. py2docfx/venv/venv1/Lib/site-packages/win32com/client/connect.py +0 -48
  428. py2docfx/venv/venv1/Lib/site-packages/win32com/client/dynamic.py +0 -699
  429. py2docfx/venv/venv1/Lib/site-packages/win32com/client/gencache.py +0 -825
  430. py2docfx/venv/venv1/Lib/site-packages/win32com/client/genpy.py +0 -1350
  431. py2docfx/venv/venv1/Lib/site-packages/win32com/client/makepy.py +0 -453
  432. py2docfx/venv/venv1/Lib/site-packages/win32com/client/selecttlb.py +0 -182
  433. py2docfx/venv/venv1/Lib/site-packages/win32com/client/tlbrowse.py +0 -277
  434. py2docfx/venv/venv1/Lib/site-packages/win32com/client/util.py +0 -103
  435. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/__init__.py +0 -0
  436. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/connect.py +0 -96
  437. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/dump_clipboard.py +0 -74
  438. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsApartmentThreaded.py +0 -98
  439. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsFreeThreaded.py +0 -92
  440. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelAddin.py +0 -169
  441. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelRTDServer.py +0 -434
  442. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/iebutton.py +0 -214
  443. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/ietoolbar.py +0 -368
  444. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/outlookAddin.py +0 -135
  445. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/trybag.py +0 -78
  446. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/__init__.py +0 -1
  447. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegw.py +0 -618
  448. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwenum.py +0 -331
  449. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwparse.py +0 -1017
  450. py2docfx/venv/venv1/Lib/site-packages/win32com/olectl.py +0 -70
  451. py2docfx/venv/venv1/Lib/site-packages/win32com/server/__init__.py +0 -1
  452. py2docfx/venv/venv1/Lib/site-packages/win32com/server/connect.py +0 -85
  453. py2docfx/venv/venv1/Lib/site-packages/win32com/server/dispatcher.py +0 -239
  454. py2docfx/venv/venv1/Lib/site-packages/win32com/server/exception.py +0 -99
  455. py2docfx/venv/venv1/Lib/site-packages/win32com/server/factory.py +0 -26
  456. py2docfx/venv/venv1/Lib/site-packages/win32com/server/localserver.py +0 -53
  457. py2docfx/venv/venv1/Lib/site-packages/win32com/server/policy.py +0 -803
  458. py2docfx/venv/venv1/Lib/site-packages/win32com/server/register.py +0 -677
  459. py2docfx/venv/venv1/Lib/site-packages/win32com/server/util.py +0 -229
  460. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/PythonTools.py +0 -47
  461. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/__init__.py +0 -0
  462. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/dictionary.py +0 -133
  463. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/interp.py +0 -59
  464. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/perfmon.py +0 -36
  465. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/test_pycomtest.py +0 -181
  466. py2docfx/venv/venv1/Lib/site-packages/win32com/storagecon.py +0 -142
  467. py2docfx/venv/venv1/Lib/site-packages/win32com/test/GenTestScripts.py +0 -95
  468. py2docfx/venv/venv1/Lib/site-packages/win32com/test/__init__.py +0 -1
  469. py2docfx/venv/venv1/Lib/site-packages/win32com/test/daodump.py +0 -88
  470. py2docfx/venv/venv1/Lib/site-packages/win32com/test/errorSemantics.py +0 -243
  471. py2docfx/venv/venv1/Lib/site-packages/win32com/test/pippo_server.py +0 -96
  472. py2docfx/venv/venv1/Lib/site-packages/win32com/test/policySemantics.py +0 -115
  473. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testADOEvents.py +0 -100
  474. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAXScript.py +0 -44
  475. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAccess.py +0 -185
  476. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testArrays.py +0 -99
  477. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testClipboard.py +0 -169
  478. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testCollections.py +0 -159
  479. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testConversionErrors.py +0 -35
  480. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDCOM.py +0 -50
  481. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDates.py +0 -74
  482. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDictionary.py +0 -101
  483. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDynamic.py +0 -83
  484. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExchange.py +0 -121
  485. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExplorer.py +0 -139
  486. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGIT.py +0 -142
  487. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGatewayAddresses.py +0 -149
  488. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testIterators.py +0 -140
  489. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOffice.py +0 -184
  490. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOfficeEvents.py +0 -138
  491. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMarshal.py +0 -160
  492. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPersist.py +0 -227
  493. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPippo.py +0 -80
  494. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPyComTest.py +0 -918
  495. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testROT.py +0 -29
  496. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testServers.py +0 -51
  497. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testShell.py +0 -272
  498. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStorage.py +0 -88
  499. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStreams.py +0 -147
  500. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testWMI.py +0 -18
  501. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testall.py +0 -320
  502. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testmakepy.py +0 -54
  503. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvb.py +0 -583
  504. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvbscript_regexp.py +0 -40
  505. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testxslt.py +0 -34
  506. py2docfx/venv/venv1/Lib/site-packages/win32com/test/util.py +0 -262
  507. py2docfx/venv/venv1/Lib/site-packages/win32com/universal.py +0 -224
  508. py2docfx/venv/venv1/Lib/site-packages/win32com/util.py +0 -35
  509. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/__init__.py +0 -113
  510. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/adsicon.py +0 -340
  511. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/objectPicker.py +0 -68
  512. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/scp.py +0 -565
  513. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/search.py +0 -151
  514. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/test.py +0 -274
  515. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/__init__.py +0 -6
  516. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditSecurity.py +0 -229
  517. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditServiceSecurity.py +0 -219
  518. py2docfx/venv/venv1/Lib/site-packages/win32comext/axcontrol/__init__.py +0 -4
  519. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/__init__.py +0 -4
  520. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/adb.py +0 -467
  521. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/codecontainer.py +0 -279
  522. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/contexts.py +0 -58
  523. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/debugger.py +0 -238
  524. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/documents.py +0 -135
  525. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/dump.py +0 -57
  526. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/expressions.py +0 -212
  527. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/gateways.py +0 -583
  528. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/stackframe.py +0 -178
  529. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/util.py +0 -98
  530. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/__init__.py +0 -4
  531. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/asputil.py +0 -13
  532. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/__init__.py +0 -1
  533. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/debug.py +0 -223
  534. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/error.py +0 -262
  535. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/framework.py +0 -1291
  536. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pydumper.py +0 -78
  537. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript.py +0 -438
  538. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript_rexec.py +0 -54
  539. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/scriptdispatch.py +0 -103
  540. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/__init__.py +0 -0
  541. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/axsite.py +0 -145
  542. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/leakTest.py +0 -185
  543. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost.py +0 -240
  544. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost4Dbg.py +0 -83
  545. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/__init__.py +0 -6
  546. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/show_all_jobs.py +0 -48
  547. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/test_bits.py +0 -119
  548. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/__init__.py +0 -4
  549. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/__init__.py +0 -1
  550. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_record.py +0 -60
  551. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_test.py +0 -402
  552. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/__init__.py +0 -1
  553. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/demo/filterDemo.py +0 -300
  554. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/ifiltercon.py +0 -110
  555. py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/__init__.py +0 -4
  556. py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/inetcon.py +0 -261
  557. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/__init__.py +0 -21
  558. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/demos/mapisend.py +0 -98
  559. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/emsabtags.py +0 -875
  560. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapitags.py +0 -1023
  561. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapiutil.py +0 -211
  562. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/__init__.py +0 -1
  563. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/pscon.py +0 -838
  564. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/test/testpropsys.py +0 -5
  565. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/__init__.py +0 -4
  566. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IActiveDesktop.py +0 -83
  567. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IFileOperationProgressSink.py +0 -179
  568. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IShellLinkDataList.py +0 -67
  569. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/ITransferAdviseSink.py +0 -93
  570. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IUniformResourceLocator.py +0 -56
  571. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/browse_for_folder.py +0 -45
  572. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/create_link.py +0 -73
  573. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/dump_link.py +0 -58
  574. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/explorer_browser.py +0 -143
  575. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/column_provider.py +0 -125
  576. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/context_menu.py +0 -122
  577. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/copy_hook.py +0 -84
  578. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/empty_volume_cache.py +0 -188
  579. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/folder_view.py +0 -866
  580. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/icon_handler.py +0 -81
  581. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/shell_view.py +0 -971
  582. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/shellexecuteex.py +0 -19
  583. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/viewstate.py +0 -68
  584. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/walk_shell_folders.py +0 -24
  585. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/shellcon.py +0 -1615
  586. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testSHFileOperation.py +0 -75
  587. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellFolder.py +0 -21
  588. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellItem.py +0 -69
  589. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/__init__.py +0 -6
  590. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask.py +0 -66
  591. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_1.py +0 -68
  592. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_2.py +0 -49
  593. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_localsystem.py +0 -3
  594. py2docfx/venv/venv1/Scripts/pywin32_postinstall.py +0 -733
  595. py2docfx/venv/venv1/Scripts/pywin32_testall.py +0 -120
  596. {py2docfx-0.1.15.dev2025501.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/WHEEL +0 -0
  597. {py2docfx-0.1.15.dev2025501.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/top_level.txt +0 -0
@@ -1,957 +0,0 @@
1
- # This is a work in progress - see Demos/win32gui_menu.py
2
-
3
- # win32gui_struct.py - helpers for working with various win32gui structures.
4
- # As win32gui is "light-weight", it does not define objects for all possible
5
- # win32 structures - in general, "buffer" objects are passed around - it is
6
- # the callers responsibility to pack the buffer in the correct format.
7
- #
8
- # This module defines some helpers for the commonly used structures.
9
- #
10
- # In general, each structure has 3 functions:
11
- #
12
- # buffer, extras = PackSTRUCTURE(items, ...)
13
- # item, ... = UnpackSTRUCTURE(buffer)
14
- # buffer, extras = EmtpySTRUCTURE(...)
15
- #
16
- # 'extras' is always items that must be held along with the buffer, as the
17
- # buffer refers to these object's memory.
18
- # For structures that support a 'mask', this mask is hidden from the user - if
19
- # 'None' is passed, the mask flag will not be set, or on return, None will
20
- # be returned for the value if the mask is not set.
21
- #
22
- # NOTE: I considered making these structures look like real classes, and
23
- # support 'attributes' etc - however, ctypes already has a good structure
24
- # mechanism - I think it makes more sense to support ctype structures
25
- # at the win32gui level, then there will be no need for this module at all.
26
- # XXX - the above makes sense in terms of what is built and passed to
27
- # win32gui (ie, the Pack* functions) - but doesn't make as much sense for
28
- # the Unpack* functions, where the aim is user convenience.
29
-
30
- import array
31
- import struct
32
- import sys
33
- from collections import namedtuple
34
-
35
- import commctrl
36
- import pywintypes
37
- import win32con
38
- import win32gui
39
-
40
-
41
- def _MakeResult(names_str, values):
42
- names = names_str.split()
43
- # TODO: Dynamic namedtuple. This could be made static, also exposing the types
44
- nt = namedtuple(names[0], names[1:]) # noqa: PYI024
45
- return nt(*values)
46
-
47
-
48
- is64bit = "64 bit" in sys.version
49
- _nmhdr_fmt = "PPi"
50
- if is64bit:
51
- # When the item past the NMHDR gets aligned (eg, when it is a struct)
52
- # we need this many bytes padding.
53
- _nmhdr_align_padding = "xxxx"
54
- else:
55
- _nmhdr_align_padding = ""
56
-
57
-
58
- # Encode a string suitable for passing in a win32gui related structure
59
- def _make_text_buffer(text):
60
- if not isinstance(text, str):
61
- raise TypeError("MENUITEMINFO text must be unicode")
62
- data = (text + "\0").encode("utf-16le")
63
- return array.array("b", data)
64
-
65
-
66
- # make an 'empty' buffer, ready for filling with cch characters.
67
- def _make_empty_text_buffer(cch):
68
- return _make_text_buffer("\0" * cch)
69
-
70
-
71
- # Generic WM_NOTIFY unpacking
72
- def UnpackWMNOTIFY(lparam):
73
- format = "PPi"
74
- buf = win32gui.PyGetMemory(lparam, struct.calcsize(format))
75
- return _MakeResult("WMNOTIFY hwndFrom idFrom code", struct.unpack(format, buf))
76
-
77
-
78
- def UnpackNMITEMACTIVATE(lparam):
79
- format = _nmhdr_fmt + _nmhdr_align_padding
80
- if is64bit:
81
- # the struct module doesn't handle this correctly as some of the items
82
- # are actually structs in structs, which get individually aligned.
83
- format += "iiiiiiixxxxP"
84
- else:
85
- format += "iiiiiiiP"
86
- buf = win32gui.PyMakeBuffer(struct.calcsize(format), lparam)
87
- return _MakeResult(
88
- "NMITEMACTIVATE hwndFrom idFrom code iItem iSubItem uNewState uOldState uChanged actionx actiony lParam",
89
- struct.unpack(format, buf),
90
- )
91
-
92
-
93
- # MENUITEMINFO struct
94
- # https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-menuiteminfow
95
- # We use the struct module to pack and unpack strings as MENUITEMINFO
96
- # structures. We also have special handling for the 'fMask' item in that
97
- # structure to avoid the caller needing to explicitly check validity
98
- # (None is used if the mask excludes/should exclude the value)
99
- _menuiteminfo_fmt = "5i5PiP"
100
-
101
-
102
- def PackMENUITEMINFO(
103
- fType=None,
104
- fState=None,
105
- wID=None,
106
- hSubMenu=None,
107
- hbmpChecked=None,
108
- hbmpUnchecked=None,
109
- dwItemData=None,
110
- text=None,
111
- hbmpItem=None,
112
- dwTypeData=None,
113
- ):
114
- # 'extras' are objects the caller must keep a reference to (as their
115
- # memory is used) for the lifetime of the INFO item.
116
- extras = []
117
- # ack - dwItemData and dwTypeData were confused for a while...
118
- assert (
119
- dwItemData is None or dwTypeData is None
120
- ), "sorry - these were confused - you probably want dwItemData"
121
- # if we are a long way past 209, then we can nuke the above...
122
- if dwTypeData is not None:
123
- import warnings
124
-
125
- warnings.warn("PackMENUITEMINFO: please use dwItemData instead of dwTypeData")
126
- if dwItemData is None:
127
- dwItemData = dwTypeData or 0
128
-
129
- fMask = 0
130
- if fType is None:
131
- fType = 0
132
- else:
133
- fMask |= win32con.MIIM_FTYPE
134
- if fState is None:
135
- fState = 0
136
- else:
137
- fMask |= win32con.MIIM_STATE
138
- if wID is None:
139
- wID = 0
140
- else:
141
- fMask |= win32con.MIIM_ID
142
- if hSubMenu is None:
143
- hSubMenu = 0
144
- else:
145
- fMask |= win32con.MIIM_SUBMENU
146
- if hbmpChecked is None:
147
- assert hbmpUnchecked is None, "neither or both checkmark bmps must be given"
148
- hbmpChecked = hbmpUnchecked = 0
149
- else:
150
- assert hbmpUnchecked is not None, "neither or both checkmark bmps must be given"
151
- fMask |= win32con.MIIM_CHECKMARKS
152
- if dwItemData is None:
153
- dwItemData = 0
154
- else:
155
- fMask |= win32con.MIIM_DATA
156
- if hbmpItem is None:
157
- hbmpItem = 0
158
- else:
159
- fMask |= win32con.MIIM_BITMAP
160
- if text is not None:
161
- fMask |= win32con.MIIM_STRING
162
- str_buf = _make_text_buffer(text)
163
- cch = len(text)
164
- # We are taking address of strbuf - it must not die until windows
165
- # has finished with our structure.
166
- lptext = str_buf.buffer_info()[0]
167
- extras.append(str_buf)
168
- else:
169
- lptext = 0
170
- cch = 0
171
- # Create the struct.
172
- # 'P' format does not accept PyHANDLE's !
173
- item = struct.pack(
174
- _menuiteminfo_fmt,
175
- struct.calcsize(_menuiteminfo_fmt), # cbSize
176
- fMask,
177
- fType,
178
- fState,
179
- wID,
180
- int(hSubMenu),
181
- int(hbmpChecked),
182
- int(hbmpUnchecked),
183
- dwItemData,
184
- lptext,
185
- cch,
186
- int(hbmpItem),
187
- )
188
- # Now copy the string to a writable buffer, so that the result
189
- # could be passed to a 'Get' function
190
- return array.array("b", item), extras
191
-
192
-
193
- def UnpackMENUITEMINFO(s):
194
- (
195
- cb,
196
- fMask,
197
- fType,
198
- fState,
199
- wID,
200
- hSubMenu,
201
- hbmpChecked,
202
- hbmpUnchecked,
203
- dwItemData,
204
- lptext,
205
- cch,
206
- hbmpItem,
207
- ) = struct.unpack(_menuiteminfo_fmt, s)
208
- assert cb == len(s)
209
- if fMask & win32con.MIIM_FTYPE == 0:
210
- fType = None
211
- if fMask & win32con.MIIM_STATE == 0:
212
- fState = None
213
- if fMask & win32con.MIIM_ID == 0:
214
- wID = None
215
- if fMask & win32con.MIIM_SUBMENU == 0:
216
- hSubMenu = None
217
- if fMask & win32con.MIIM_CHECKMARKS == 0:
218
- hbmpChecked = hbmpUnchecked = None
219
- if fMask & win32con.MIIM_DATA == 0:
220
- dwItemData = None
221
- if fMask & win32con.MIIM_BITMAP == 0:
222
- hbmpItem = None
223
- if fMask & win32con.MIIM_STRING:
224
- text = win32gui.PyGetString(lptext, cch)
225
- else:
226
- text = None
227
- return _MakeResult(
228
- "MENUITEMINFO fType fState wID hSubMenu hbmpChecked "
229
- "hbmpUnchecked dwItemData text hbmpItem",
230
- (
231
- fType,
232
- fState,
233
- wID,
234
- hSubMenu,
235
- hbmpChecked,
236
- hbmpUnchecked,
237
- dwItemData,
238
- text,
239
- hbmpItem,
240
- ),
241
- )
242
-
243
-
244
- def EmptyMENUITEMINFO(mask=None, text_buf_size=512):
245
- # text_buf_size is number of *characters* - not necessarily no of bytes.
246
- extra = []
247
- if mask is None:
248
- mask = (
249
- win32con.MIIM_BITMAP
250
- | win32con.MIIM_CHECKMARKS
251
- | win32con.MIIM_DATA
252
- | win32con.MIIM_FTYPE
253
- | win32con.MIIM_ID
254
- | win32con.MIIM_STATE
255
- | win32con.MIIM_STRING
256
- | win32con.MIIM_SUBMENU
257
- )
258
- # Note: No MIIM_TYPE - this screws win2k/98.
259
-
260
- if mask & win32con.MIIM_STRING:
261
- text_buffer = _make_empty_text_buffer(text_buf_size)
262
- extra.append(text_buffer)
263
- text_addr, _ = text_buffer.buffer_info()
264
- else:
265
- text_addr = text_buf_size = 0
266
-
267
- # Now copy the string to a writable buffer, so that the result
268
- # could be passed to a 'Get' function
269
- buf = struct.pack(
270
- _menuiteminfo_fmt,
271
- struct.calcsize(_menuiteminfo_fmt), # cbSize
272
- mask,
273
- 0, # fType,
274
- 0, # fState,
275
- 0, # wID,
276
- 0, # hSubMenu,
277
- 0, # hbmpChecked,
278
- 0, # hbmpUnchecked,
279
- 0, # dwItemData,
280
- text_addr,
281
- text_buf_size,
282
- 0, # hbmpItem
283
- )
284
- return array.array("b", buf), extra
285
-
286
-
287
- # MENUINFO struct
288
- _menuinfo_fmt = "iiiiPiP"
289
-
290
-
291
- def PackMENUINFO(
292
- dwStyle=None,
293
- cyMax=None,
294
- hbrBack=None,
295
- dwContextHelpID=None,
296
- dwMenuData=None,
297
- fMask=0,
298
- ):
299
- if dwStyle is None:
300
- dwStyle = 0
301
- else:
302
- fMask |= win32con.MIM_STYLE
303
- if cyMax is None:
304
- cyMax = 0
305
- else:
306
- fMask |= win32con.MIM_MAXHEIGHT
307
- if hbrBack is None:
308
- hbrBack = 0
309
- else:
310
- fMask |= win32con.MIM_BACKGROUND
311
- if dwContextHelpID is None:
312
- dwContextHelpID = 0
313
- else:
314
- fMask |= win32con.MIM_HELPID
315
- if dwMenuData is None:
316
- dwMenuData = 0
317
- else:
318
- fMask |= win32con.MIM_MENUDATA
319
- # Create the struct.
320
- item = struct.pack(
321
- _menuinfo_fmt,
322
- struct.calcsize(_menuinfo_fmt), # cbSize
323
- fMask,
324
- dwStyle,
325
- cyMax,
326
- hbrBack,
327
- dwContextHelpID,
328
- dwMenuData,
329
- )
330
- return array.array("b", item)
331
-
332
-
333
- def UnpackMENUINFO(s):
334
- (cb, fMask, dwStyle, cyMax, hbrBack, dwContextHelpID, dwMenuData) = struct.unpack(
335
- _menuinfo_fmt, s
336
- )
337
- assert cb == len(s)
338
- if fMask & win32con.MIM_STYLE == 0:
339
- dwStyle = None
340
- if fMask & win32con.MIM_MAXHEIGHT == 0:
341
- cyMax = None
342
- if fMask & win32con.MIM_BACKGROUND == 0:
343
- hbrBack = None
344
- if fMask & win32con.MIM_HELPID == 0:
345
- dwContextHelpID = None
346
- if fMask & win32con.MIM_MENUDATA == 0:
347
- dwMenuData = None
348
- return _MakeResult(
349
- "MENUINFO dwStyle cyMax hbrBack dwContextHelpID dwMenuData",
350
- (dwStyle, cyMax, hbrBack, dwContextHelpID, dwMenuData),
351
- )
352
-
353
-
354
- def EmptyMENUINFO(mask=None):
355
- if mask is None:
356
- mask = (
357
- win32con.MIM_STYLE
358
- | win32con.MIM_MAXHEIGHT
359
- | win32con.MIM_BACKGROUND
360
- | win32con.MIM_HELPID
361
- | win32con.MIM_MENUDATA
362
- )
363
-
364
- buf = struct.pack(
365
- _menuinfo_fmt,
366
- struct.calcsize(_menuinfo_fmt), # cbSize
367
- mask,
368
- 0, # dwStyle
369
- 0, # cyMax
370
- 0, # hbrBack,
371
- 0, # dwContextHelpID,
372
- 0, # dwMenuData,
373
- )
374
- return array.array("b", buf)
375
-
376
-
377
- ##########################################################################
378
- #
379
- # Tree View structure support - TVITEM, TVINSERTSTRUCT and TVDISPINFO
380
- #
381
- ##########################################################################
382
-
383
- # XXX - Note that the following implementation of TreeView structures is ripped
384
- # XXX - from the SpamBayes project. It may not quite work correctly yet - I
385
- # XXX - intend checking them later - but having them is better than not at all!
386
-
387
- _tvitem_fmt = "iPiiPiiiiP"
388
-
389
-
390
- # Helpers for the ugly win32 structure packing/unpacking
391
- # XXX - Note that functions using _GetMaskAndVal run 3x faster if they are
392
- # 'inlined' into the function - see PackLVITEM. If the profiler points at
393
- # _GetMaskAndVal(), you should nuke it (patches welcome once they have been
394
- # tested)
395
- def _GetMaskAndVal(val, default, mask, flag):
396
- if val is None:
397
- return mask, default
398
- else:
399
- if flag is not None:
400
- mask |= flag
401
- return mask, val
402
-
403
-
404
- def PackTVINSERTSTRUCT(parent, insertAfter, tvitem):
405
- tvitem_buf, extra = PackTVITEM(*tvitem)
406
- tvitem_buf = tvitem_buf.tobytes()
407
- format = "PP%ds" % len(tvitem_buf)
408
- return struct.pack(format, parent, insertAfter, tvitem_buf), extra
409
-
410
-
411
- def PackTVITEM(hitem, state, stateMask, text, image, selimage, citems, param):
412
- extra = [] # objects we must keep references to
413
- mask = 0
414
- mask, hitem = _GetMaskAndVal(hitem, 0, mask, commctrl.TVIF_HANDLE)
415
- mask, state = _GetMaskAndVal(state, 0, mask, commctrl.TVIF_STATE)
416
- if not mask & commctrl.TVIF_STATE:
417
- stateMask = 0
418
- mask, text = _GetMaskAndVal(text, None, mask, commctrl.TVIF_TEXT)
419
- mask, image = _GetMaskAndVal(image, 0, mask, commctrl.TVIF_IMAGE)
420
- mask, selimage = _GetMaskAndVal(selimage, 0, mask, commctrl.TVIF_SELECTEDIMAGE)
421
- mask, citems = _GetMaskAndVal(citems, 0, mask, commctrl.TVIF_CHILDREN)
422
- mask, param = _GetMaskAndVal(param, 0, mask, commctrl.TVIF_PARAM)
423
- if text is None:
424
- text_addr = text_len = 0
425
- else:
426
- text_buffer = _make_text_buffer(text)
427
- text_len = len(text)
428
- extra.append(text_buffer)
429
- text_addr, _ = text_buffer.buffer_info()
430
- buf = struct.pack(
431
- _tvitem_fmt,
432
- mask,
433
- hitem,
434
- state,
435
- stateMask,
436
- text_addr,
437
- text_len, # text
438
- image,
439
- selimage,
440
- citems,
441
- param,
442
- )
443
- return array.array("b", buf), extra
444
-
445
-
446
- # Make a new buffer suitable for querying hitem's attributes.
447
- def EmptyTVITEM(hitem, mask=None, text_buf_size=512):
448
- extra = [] # objects we must keep references to
449
- if mask is None:
450
- mask = (
451
- commctrl.TVIF_HANDLE
452
- | commctrl.TVIF_STATE
453
- | commctrl.TVIF_TEXT
454
- | commctrl.TVIF_IMAGE
455
- | commctrl.TVIF_SELECTEDIMAGE
456
- | commctrl.TVIF_CHILDREN
457
- | commctrl.TVIF_PARAM
458
- )
459
- if mask & commctrl.TVIF_TEXT:
460
- text_buffer = _make_empty_text_buffer(text_buf_size)
461
- extra.append(text_buffer)
462
- text_addr, _ = text_buffer.buffer_info()
463
- else:
464
- text_addr = text_buf_size = 0
465
- buf = struct.pack(
466
- _tvitem_fmt, mask, hitem, 0, 0, text_addr, text_buf_size, 0, 0, 0, 0
467
- )
468
- return array.array("b", buf), extra
469
-
470
-
471
- def UnpackTVITEM(buffer):
472
- (
473
- item_mask,
474
- item_hItem,
475
- item_state,
476
- item_stateMask,
477
- item_textptr,
478
- item_cchText,
479
- item_image,
480
- item_selimage,
481
- item_cChildren,
482
- item_param,
483
- ) = struct.unpack(_tvitem_fmt, buffer)
484
- # ensure only items listed by the mask are valid (except we assume the
485
- # handle is always valid - some notifications (eg, TVN_ENDLABELEDIT) set a
486
- # mask that doesn't include the handle, but the docs explicity say it is.)
487
- if not (item_mask & commctrl.TVIF_TEXT):
488
- item_textptr = item_cchText = None
489
- if not (item_mask & commctrl.TVIF_CHILDREN):
490
- item_cChildren = None
491
- if not (item_mask & commctrl.TVIF_IMAGE):
492
- item_image = None
493
- if not (item_mask & commctrl.TVIF_PARAM):
494
- item_param = None
495
- if not (item_mask & commctrl.TVIF_SELECTEDIMAGE):
496
- item_selimage = None
497
- if not (item_mask & commctrl.TVIF_STATE):
498
- item_state = item_stateMask = None
499
-
500
- if item_textptr:
501
- text = win32gui.PyGetString(item_textptr)
502
- else:
503
- text = None
504
- return _MakeResult(
505
- "TVITEM item_hItem item_state item_stateMask "
506
- "text item_image item_selimage item_cChildren item_param",
507
- (
508
- item_hItem,
509
- item_state,
510
- item_stateMask,
511
- text,
512
- item_image,
513
- item_selimage,
514
- item_cChildren,
515
- item_param,
516
- ),
517
- )
518
-
519
-
520
- # Unpack the lparm from a "TVNOTIFY" message
521
- def UnpackTVNOTIFY(lparam):
522
- item_size = struct.calcsize(_tvitem_fmt)
523
- format = _nmhdr_fmt + _nmhdr_align_padding
524
- if is64bit:
525
- format += "ixxxx"
526
- else:
527
- format += "i"
528
- format += "%ds%ds" % (item_size, item_size)
529
- buf = win32gui.PyGetMemory(lparam, struct.calcsize(format))
530
- hwndFrom, id, code, action, buf_old, buf_new = struct.unpack(format, buf)
531
- item_old = UnpackTVITEM(buf_old)
532
- item_new = UnpackTVITEM(buf_new)
533
- return _MakeResult(
534
- "TVNOTIFY hwndFrom id code action item_old item_new",
535
- (hwndFrom, id, code, action, item_old, item_new),
536
- )
537
-
538
-
539
- def UnpackTVDISPINFO(lparam):
540
- item_size = struct.calcsize(_tvitem_fmt)
541
- format = "PPi%ds" % (item_size,)
542
- buf = win32gui.PyGetMemory(lparam, struct.calcsize(format))
543
- hwndFrom, id, code, buf_item = struct.unpack(format, buf)
544
- item = UnpackTVITEM(buf_item)
545
- return _MakeResult("TVDISPINFO hwndFrom id code item", (hwndFrom, id, code, item))
546
-
547
-
548
- #
549
- # List view items
550
- _lvitem_fmt = "iiiiiPiiPi"
551
-
552
-
553
- def PackLVITEM(
554
- item=None,
555
- subItem=None,
556
- state=None,
557
- stateMask=None,
558
- text=None,
559
- image=None,
560
- param=None,
561
- indent=None,
562
- ):
563
- extra = [] # objects we must keep references to
564
- mask = 0
565
- # _GetMaskAndVal adds quite a bit of overhead to this function.
566
- if item is None:
567
- item = 0 # No mask for item
568
- if subItem is None:
569
- subItem = 0 # No mask for sibItem
570
- if state is None:
571
- state = 0
572
- stateMask = 0
573
- else:
574
- mask |= commctrl.LVIF_STATE
575
- if stateMask is None:
576
- stateMask = state
577
-
578
- if image is None:
579
- image = 0
580
- else:
581
- mask |= commctrl.LVIF_IMAGE
582
- if param is None:
583
- param = 0
584
- else:
585
- mask |= commctrl.LVIF_PARAM
586
- if indent is None:
587
- indent = 0
588
- else:
589
- mask |= commctrl.LVIF_INDENT
590
-
591
- if text is None:
592
- text_addr = text_len = 0
593
- else:
594
- mask |= commctrl.LVIF_TEXT
595
- text_buffer = _make_text_buffer(text)
596
- text_len = len(text)
597
- extra.append(text_buffer)
598
- text_addr, _ = text_buffer.buffer_info()
599
- buf = struct.pack(
600
- _lvitem_fmt,
601
- mask,
602
- item,
603
- subItem,
604
- state,
605
- stateMask,
606
- text_addr,
607
- text_len, # text
608
- image,
609
- param,
610
- indent,
611
- )
612
- return array.array("b", buf), extra
613
-
614
-
615
- def UnpackLVITEM(buffer):
616
- (
617
- item_mask,
618
- item_item,
619
- item_subItem,
620
- item_state,
621
- item_stateMask,
622
- item_textptr,
623
- item_cchText,
624
- item_image,
625
- item_param,
626
- item_indent,
627
- ) = struct.unpack(_lvitem_fmt, buffer)
628
- # ensure only items listed by the mask are valid
629
- if not (item_mask & commctrl.LVIF_TEXT):
630
- item_textptr = item_cchText = None
631
- if not (item_mask & commctrl.LVIF_IMAGE):
632
- item_image = None
633
- if not (item_mask & commctrl.LVIF_PARAM):
634
- item_param = None
635
- if not (item_mask & commctrl.LVIF_INDENT):
636
- item_indent = None
637
- if not (item_mask & commctrl.LVIF_STATE):
638
- item_state = item_stateMask = None
639
-
640
- if item_textptr:
641
- text = win32gui.PyGetString(item_textptr)
642
- else:
643
- text = None
644
- return _MakeResult(
645
- "LVITEM item_item item_subItem item_state "
646
- "item_stateMask text item_image item_param item_indent",
647
- (
648
- item_item,
649
- item_subItem,
650
- item_state,
651
- item_stateMask,
652
- text,
653
- item_image,
654
- item_param,
655
- item_indent,
656
- ),
657
- )
658
-
659
-
660
- # Unpack an "LVNOTIFY" message
661
- def UnpackLVDISPINFO(lparam):
662
- item_size = struct.calcsize(_lvitem_fmt)
663
- format = _nmhdr_fmt + _nmhdr_align_padding + ("%ds" % (item_size,))
664
- buf = win32gui.PyGetMemory(lparam, struct.calcsize(format))
665
- hwndFrom, id, code, buf_item = struct.unpack(format, buf)
666
- item = UnpackLVITEM(buf_item)
667
- return _MakeResult("LVDISPINFO hwndFrom id code item", (hwndFrom, id, code, item))
668
-
669
-
670
- def UnpackLVNOTIFY(lparam):
671
- format = _nmhdr_fmt + _nmhdr_align_padding + "7i"
672
- if is64bit:
673
- format += "xxxx" # point needs padding.
674
- format += "P"
675
- buf = win32gui.PyGetMemory(lparam, struct.calcsize(format))
676
- (
677
- hwndFrom,
678
- id,
679
- code,
680
- item,
681
- subitem,
682
- newstate,
683
- oldstate,
684
- changed,
685
- pt_x,
686
- pt_y,
687
- lparam,
688
- ) = struct.unpack(format, buf)
689
- return _MakeResult(
690
- "UnpackLVNOTIFY hwndFrom id code item subitem "
691
- "newstate oldstate changed pt lparam",
692
- (
693
- hwndFrom,
694
- id,
695
- code,
696
- item,
697
- subitem,
698
- newstate,
699
- oldstate,
700
- changed,
701
- (pt_x, pt_y),
702
- lparam,
703
- ),
704
- )
705
-
706
-
707
- # Make a new buffer suitable for querying an items attributes.
708
- def EmptyLVITEM(item, subitem, mask=None, text_buf_size=512):
709
- extra = [] # objects we must keep references to
710
- if mask is None:
711
- mask = (
712
- commctrl.LVIF_IMAGE
713
- | commctrl.LVIF_INDENT
714
- | commctrl.LVIF_TEXT
715
- | commctrl.LVIF_PARAM
716
- | commctrl.LVIF_STATE
717
- )
718
- if mask & commctrl.LVIF_TEXT:
719
- text_buffer = _make_empty_text_buffer(text_buf_size)
720
- extra.append(text_buffer)
721
- text_addr, _ = text_buffer.buffer_info()
722
- else:
723
- text_addr = text_buf_size = 0
724
- buf = struct.pack(
725
- _lvitem_fmt,
726
- mask,
727
- item,
728
- subitem,
729
- 0,
730
- 0,
731
- text_addr,
732
- text_buf_size, # text
733
- 0,
734
- 0,
735
- 0,
736
- )
737
- return array.array("b", buf), extra
738
-
739
-
740
- # List view column structure
741
- _lvcolumn_fmt = "iiiPiiii"
742
-
743
-
744
- def PackLVCOLUMN(fmt=None, cx=None, text=None, subItem=None, image=None, order=None):
745
- extra = [] # objects we must keep references to
746
- mask = 0
747
- mask, fmt = _GetMaskAndVal(fmt, 0, mask, commctrl.LVCF_FMT)
748
- mask, cx = _GetMaskAndVal(cx, 0, mask, commctrl.LVCF_WIDTH)
749
- mask, text = _GetMaskAndVal(text, None, mask, commctrl.LVCF_TEXT)
750
- mask, subItem = _GetMaskAndVal(subItem, 0, mask, commctrl.LVCF_SUBITEM)
751
- mask, image = _GetMaskAndVal(image, 0, mask, commctrl.LVCF_IMAGE)
752
- mask, order = _GetMaskAndVal(order, 0, mask, commctrl.LVCF_ORDER)
753
- if text is None:
754
- text_addr = text_len = 0
755
- else:
756
- text_buffer = _make_text_buffer(text)
757
- extra.append(text_buffer)
758
- text_addr, _ = text_buffer.buffer_info()
759
- text_len = len(text)
760
- buf = struct.pack(
761
- _lvcolumn_fmt, mask, fmt, cx, text_addr, text_len, subItem, image, order
762
- )
763
- return array.array("b", buf), extra
764
-
765
-
766
- def UnpackLVCOLUMN(lparam):
767
- mask, fmt, cx, text_addr, text_size, subItem, image, order = struct.unpack(
768
- _lvcolumn_fmt, lparam
769
- )
770
- # ensure only items listed by the mask are valid
771
- if not (mask & commctrl.LVCF_FMT):
772
- fmt = None
773
- if not (mask & commctrl.LVCF_WIDTH):
774
- cx = None
775
- if not (mask & commctrl.LVCF_TEXT):
776
- text_addr = text_size = None
777
- if not (mask & commctrl.LVCF_SUBITEM):
778
- subItem = None
779
- if not (mask & commctrl.LVCF_IMAGE):
780
- image = None
781
- if not (mask & commctrl.LVCF_ORDER):
782
- order = None
783
- if text_addr:
784
- text = win32gui.PyGetString(text_addr)
785
- else:
786
- text = None
787
- return _MakeResult(
788
- "LVCOLUMN fmt cx text subItem image order",
789
- (fmt, cx, text, subItem, image, order),
790
- )
791
-
792
-
793
- # Make a new buffer suitable for querying an items attributes.
794
- def EmptyLVCOLUMN(mask=None, text_buf_size=512):
795
- extra = [] # objects we must keep references to
796
- if mask is None:
797
- mask = (
798
- commctrl.LVCF_FMT
799
- | commctrl.LVCF_WIDTH
800
- | commctrl.LVCF_TEXT
801
- | commctrl.LVCF_SUBITEM
802
- | commctrl.LVCF_IMAGE
803
- | commctrl.LVCF_ORDER
804
- )
805
- if mask & commctrl.LVCF_TEXT:
806
- text_buffer = _make_empty_text_buffer(text_buf_size)
807
- extra.append(text_buffer)
808
- text_addr, _ = text_buffer.buffer_info()
809
- else:
810
- text_addr = text_buf_size = 0
811
- buf = struct.pack(_lvcolumn_fmt, mask, 0, 0, text_addr, text_buf_size, 0, 0, 0)
812
- return array.array("b", buf), extra
813
-
814
-
815
- # List view hit-test.
816
- def PackLVHITTEST(pt):
817
- format = "iiiii"
818
- buf = struct.pack(format, pt[0], pt[1], 0, 0, 0)
819
- return array.array("b", buf), None
820
-
821
-
822
- def UnpackLVHITTEST(buf):
823
- format = "iiiii"
824
- x, y, flags, item, subitem = struct.unpack(format, buf)
825
- return _MakeResult(
826
- "LVHITTEST pt flags item subitem", ((x, y), flags, item, subitem)
827
- )
828
-
829
-
830
- def PackHDITEM(
831
- cxy=None, text=None, hbm=None, fmt=None, param=None, image=None, order=None
832
- ):
833
- extra = [] # objects we must keep references to
834
- mask = 0
835
- mask, cxy = _GetMaskAndVal(cxy, 0, mask, commctrl.HDI_HEIGHT)
836
- mask, text = _GetMaskAndVal(text, None, mask, commctrl.LVCF_TEXT)
837
- mask, hbm = _GetMaskAndVal(hbm, 0, mask, commctrl.HDI_BITMAP)
838
- mask, fmt = _GetMaskAndVal(fmt, 0, mask, commctrl.HDI_FORMAT)
839
- mask, param = _GetMaskAndVal(param, 0, mask, commctrl.HDI_LPARAM)
840
- mask, image = _GetMaskAndVal(image, 0, mask, commctrl.HDI_IMAGE)
841
- mask, order = _GetMaskAndVal(order, 0, mask, commctrl.HDI_ORDER)
842
-
843
- if text is None:
844
- text_addr = text_len = 0
845
- else:
846
- text_buffer = _make_text_buffer(text)
847
- extra.append(text_buffer)
848
- text_addr, _ = text_buffer.buffer_info()
849
- text_len = len(text)
850
-
851
- format = "iiPPiiPiiii"
852
- buf = struct.pack(
853
- format, mask, cxy, text_addr, hbm, text_len, fmt, param, image, order, 0, 0
854
- )
855
- return array.array("b", buf), extra
856
-
857
-
858
- # Device notification stuff
859
-
860
-
861
- # Generic function for packing a DEV_BROADCAST_* structure - generally used
862
- # by the other PackDEV_BROADCAST_* functions in this module.
863
- def PackDEV_BROADCAST(devicetype, rest_fmt, rest_data, extra_data=b""):
864
- # It seems a requirement is 4 byte alignment, even for the 'BYTE data[1]'
865
- # field (eg, that would make DEV_BROADCAST_HANDLE 41 bytes, but we must
866
- # be 44.
867
- extra_data += b"\0" * (4 - len(extra_data) % 4)
868
- format = "iii" + rest_fmt
869
- full_size = struct.calcsize(format) + len(extra_data)
870
- data = (full_size, devicetype, 0) + rest_data
871
- return struct.pack(format, *data) + extra_data
872
-
873
-
874
- def PackDEV_BROADCAST_HANDLE(
875
- handle,
876
- hdevnotify=0,
877
- guid=b"\0" * 16,
878
- name_offset=0,
879
- data=b"\0",
880
- ):
881
- return PackDEV_BROADCAST(
882
- win32con.DBT_DEVTYP_HANDLE,
883
- "PP16sl",
884
- (int(handle), int(hdevnotify), bytes(memoryview(guid)), name_offset),
885
- data,
886
- )
887
-
888
-
889
- def PackDEV_BROADCAST_VOLUME(unitmask, flags):
890
- return PackDEV_BROADCAST(win32con.DBT_DEVTYP_VOLUME, "II", (unitmask, flags))
891
-
892
-
893
- def PackDEV_BROADCAST_DEVICEINTERFACE(classguid, name=""):
894
- if not isinstance(name, str):
895
- raise TypeError("Must provide unicode for the name")
896
- name = name.encode("utf-16le")
897
-
898
- # 16 bytes for the IID followed by \0 term'd string.
899
- rest_fmt = "16s%ds" % len(name)
900
- # bytes(memoryview(iid)) hoops necessary to get the raw IID bytes.
901
- rest_data = (bytes(memoryview(pywintypes.IID(classguid))), name)
902
- return PackDEV_BROADCAST(win32con.DBT_DEVTYP_DEVICEINTERFACE, rest_fmt, rest_data)
903
-
904
-
905
- # An object returned by UnpackDEV_BROADCAST.
906
- class DEV_BROADCAST_INFO:
907
- def __init__(self, devicetype, **kw):
908
- self.devicetype = devicetype
909
- self.__dict__.update(kw)
910
-
911
- def __str__(self):
912
- return "DEV_BROADCAST_INFO:" + str(self.__dict__)
913
-
914
-
915
- # Support for unpacking the 'lparam'
916
- def UnpackDEV_BROADCAST(lparam):
917
- if lparam == 0:
918
- return None
919
- hdr_format = "iii"
920
- hdr_size = struct.calcsize(hdr_format)
921
- hdr_buf = win32gui.PyGetMemory(lparam, hdr_size)
922
- size, devtype, reserved = struct.unpack("iii", hdr_buf)
923
- # Due to x64 alignment issues, we need to use the full format string over
924
- # the entire buffer. ie, on x64:
925
- # calcsize('iiiP') != calcsize('iii')+calcsize('P')
926
- buf = win32gui.PyGetMemory(lparam, size)
927
-
928
- extra = x = {}
929
- if devtype == win32con.DBT_DEVTYP_HANDLE:
930
- # 2 handles, a GUID, a LONG and possibly an array following...
931
- fmt = hdr_format + "PP16sl"
932
- (
933
- _,
934
- _,
935
- _,
936
- x["handle"],
937
- x["hdevnotify"],
938
- guid_bytes,
939
- x["nameoffset"],
940
- ) = struct.unpack(fmt, buf[: struct.calcsize(fmt)])
941
- x["eventguid"] = pywintypes.IID(guid_bytes, True)
942
- elif devtype == win32con.DBT_DEVTYP_DEVICEINTERFACE:
943
- fmt = hdr_format + "16s"
944
- _, _, _, guid_bytes = struct.unpack(fmt, buf[: struct.calcsize(fmt)])
945
- x["classguid"] = pywintypes.IID(guid_bytes, True)
946
- x["name"] = win32gui.PyGetString(lparam + struct.calcsize(fmt))
947
- elif devtype == win32con.DBT_DEVTYP_VOLUME:
948
- # int mask and flags
949
- fmt = hdr_format + "II"
950
- _, _, _, x["unitmask"], x["flags"] = struct.unpack(
951
- fmt, buf[: struct.calcsize(fmt)]
952
- )
953
- elif devtype == win32con.DBT_DEVTYP_PORT:
954
- x["name"] = win32gui.PyGetString(lparam + struct.calcsize(hdr_format))
955
- else:
956
- raise NotImplementedError("unknown device type %d" % (devtype,))
957
- return DEV_BROADCAST_INFO(devtype, **extra)