py2docfx 0.1.15.dev2025736__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 (600) hide show
  1. py2docfx/docfx_yaml/process_doctree.py +34 -21
  2. py2docfx/docfx_yaml/tests/test_method_arguments.py +7 -1
  3. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_core_metadata.py +21 -5
  4. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +2 -0
  5. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/ccompiler.py +5 -2
  6. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/__init__.py +27 -8
  7. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build.py +1 -6
  8. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_clib.py +1 -9
  9. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_ext.py +1 -8
  10. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
  11. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
  12. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/install.py +8 -17
  13. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compat/numpy.py +2 -0
  14. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +8 -5
  15. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +1 -1
  16. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +15 -1
  17. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/dist.py +2 -1
  18. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -10
  19. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +60 -5
  20. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/unixccompiler.py +6 -0
  21. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/util.py +7 -6
  22. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_normalization.py +29 -0
  23. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +1 -1
  24. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py +613 -0
  25. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +2 -2
  26. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +25 -594
  27. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +6 -6
  28. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +282 -223
  29. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +22 -9
  30. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +16 -13
  31. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/util.py +0 -9
  32. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +40 -9
  33. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +6 -2
  34. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +48 -11
  35. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +31 -1
  36. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +222 -129
  37. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +30 -3
  38. py2docfx/venv/basevenv/Lib/site-packages/setuptools/dist.py +115 -9
  39. py2docfx/venv/basevenv/Lib/site-packages/setuptools/msvc.py +12 -3
  40. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +246 -13
  41. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +93 -8
  42. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_meta.py +17 -4
  43. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_core_metadata.py +45 -0
  44. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +24 -4
  45. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_sdist.py +13 -1
  46. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/__init__.py +1 -1
  47. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any_pb2.py +4 -4
  48. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/api_pb2.py +4 -4
  49. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/compiler/plugin_pb2.py +4 -4
  50. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_database.py +22 -4
  51. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pb2.py +82 -35
  52. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/duration_pb2.py +4 -4
  53. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/empty_pb2.py +4 -4
  54. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/field_mask_pb2.py +4 -4
  55. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/builder.py +4 -3
  56. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/containers.py +13 -0
  57. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/decoder.py +62 -115
  58. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_edition_defaults.py +1 -1
  59. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_message.py +15 -18
  60. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/testing_refleaks.py +4 -1
  61. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/type_checkers.py +5 -0
  62. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/well_known_types.py +3 -3
  63. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/json_format.py +25 -9
  64. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message.py +26 -0
  65. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message_factory.py +0 -63
  66. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto.py +38 -1
  67. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto_text.py +129 -0
  68. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/reflection.py +0 -49
  69. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/runtime_version.py +3 -3
  70. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/source_context_pb2.py +4 -4
  71. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/struct_pb2.py +4 -4
  72. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/symbol_database.py +0 -18
  73. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/text_format.py +8 -3
  74. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/timestamp_pb2.py +4 -4
  75. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/type_pb2.py +4 -4
  76. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/unknown_fields.py +3 -4
  77. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/wrappers_pb2.py +4 -4
  78. py2docfx/venv/venv1/Lib/site-packages/msal/__init__.py +1 -1
  79. py2docfx/venv/venv1/Lib/site-packages/msal/application.py +51 -17
  80. py2docfx/venv/venv1/Lib/site-packages/msal/broker.py +18 -4
  81. py2docfx/venv/venv1/Lib/site-packages/msal/cloudshell.py +5 -1
  82. py2docfx/venv/venv1/Lib/site-packages/msal/managed_identity.py +5 -4
  83. py2docfx/venv/venv1/Lib/site-packages/msal/sku.py +6 -0
  84. py2docfx/venv/venv1/Lib/site-packages/msal/token_cache.py +31 -10
  85. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/__init__.py +2 -3
  86. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/cache_lock.py +4 -1
  87. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/filelock.py +62 -0
  88. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/libsecret.py +1 -1
  89. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/token_cache.py +7 -1
  90. py2docfx/venv/venv1/Lib/site-packages/setuptools/_core_metadata.py +21 -5
  91. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +2 -0
  92. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/ccompiler.py +5 -2
  93. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/__init__.py +27 -8
  94. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build.py +1 -6
  95. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_clib.py +1 -9
  96. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_ext.py +1 -8
  97. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
  98. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
  99. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/install.py +8 -17
  100. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compat/numpy.py +2 -0
  101. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +8 -5
  102. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +1 -1
  103. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +15 -1
  104. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/dist.py +2 -1
  105. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -10
  106. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +60 -5
  107. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/unixccompiler.py +6 -0
  108. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/util.py +7 -6
  109. py2docfx/venv/venv1/Lib/site-packages/setuptools/_normalization.py +29 -0
  110. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +1 -1
  111. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py +613 -0
  112. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +2 -2
  113. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +25 -594
  114. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +6 -6
  115. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +282 -223
  116. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +22 -9
  117. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +16 -13
  118. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/util.py +0 -9
  119. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +40 -9
  120. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +6 -2
  121. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +48 -11
  122. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +31 -1
  123. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +222 -129
  124. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +30 -3
  125. py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +115 -9
  126. py2docfx/venv/venv1/Lib/site-packages/setuptools/msvc.py +12 -3
  127. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +246 -13
  128. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +93 -8
  129. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_meta.py +17 -4
  130. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_core_metadata.py +45 -0
  131. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +24 -4
  132. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_sdist.py +13 -1
  133. {py2docfx-0.1.15.dev2025736.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/METADATA +1 -1
  134. {py2docfx-0.1.15.dev2025736.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/RECORD +136 -593
  135. py2docfx/docfx_yaml/tests/test_process_doctree.py +0 -120
  136. py2docfx/venv/venv1/Lib/site-packages/adodbapi/__init__.py +0 -82
  137. py2docfx/venv/venv1/Lib/site-packages/adodbapi/ado_consts.py +0 -283
  138. py2docfx/venv/venv1/Lib/site-packages/adodbapi/adodbapi.py +0 -1153
  139. py2docfx/venv/venv1/Lib/site-packages/adodbapi/apibase.py +0 -723
  140. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_print.py +0 -72
  141. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_table_names.py +0 -21
  142. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_read.py +0 -41
  143. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_write.py +0 -41
  144. py2docfx/venv/venv1/Lib/site-packages/adodbapi/is64bit.py +0 -34
  145. py2docfx/venv/venv1/Lib/site-packages/adodbapi/process_connect_string.py +0 -137
  146. py2docfx/venv/venv1/Lib/site-packages/adodbapi/schema_table.py +0 -16
  147. py2docfx/venv/venv1/Lib/site-packages/adodbapi/setup.py +0 -68
  148. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitest.py +0 -1547
  149. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitestconfig.py +0 -184
  150. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/dbapi20.py +0 -879
  151. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/is64bit.py +0 -34
  152. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/setuptestframework.py +0 -98
  153. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/test_adodbapi_dbapi20.py +0 -195
  154. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/tryconnection.py +0 -30
  155. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/_parameterized.py +0 -420
  156. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/service.py +0 -213
  157. py2docfx/venv/venv1/Lib/site-packages/isapi/__init__.py +0 -39
  158. py2docfx/venv/venv1/Lib/site-packages/isapi/install.py +0 -809
  159. py2docfx/venv/venv1/Lib/site-packages/isapi/isapicon.py +0 -121
  160. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/advanced.py +0 -218
  161. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector.py +0 -116
  162. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_asynch.py +0 -85
  163. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_with_filter.py +0 -162
  164. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/test.py +0 -195
  165. py2docfx/venv/venv1/Lib/site-packages/isapi/simple.py +0 -73
  166. py2docfx/venv/venv1/Lib/site-packages/isapi/test/extension_simple.py +0 -114
  167. py2docfx/venv/venv1/Lib/site-packages/isapi/threaded_extension.py +0 -191
  168. py2docfx/venv/venv1/Lib/site-packages/portalocker/__about__.py +0 -6
  169. py2docfx/venv/venv1/Lib/site-packages/portalocker/__init__.py +0 -79
  170. py2docfx/venv/venv1/Lib/site-packages/portalocker/__main__.py +0 -122
  171. py2docfx/venv/venv1/Lib/site-packages/portalocker/constants.py +0 -59
  172. py2docfx/venv/venv1/Lib/site-packages/portalocker/exceptions.py +0 -27
  173. py2docfx/venv/venv1/Lib/site-packages/portalocker/portalocker.py +0 -154
  174. py2docfx/venv/venv1/Lib/site-packages/portalocker/redis.py +0 -236
  175. py2docfx/venv/venv1/Lib/site-packages/portalocker/utils.py +0 -569
  176. py2docfx/venv/venv1/Lib/site-packages/pythoncom.py +0 -4
  177. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/basictimerapp.py +0 -258
  178. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/customprint.py +0 -183
  179. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/demoutils.py +0 -63
  180. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dlgappdemo.py +0 -51
  181. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dojobapp.py +0 -71
  182. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/helloapp.py +0 -53
  183. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/cmdserver.py +0 -113
  184. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/createwin.py +0 -114
  185. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/demoutils.py +0 -65
  186. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dibdemo.py +0 -73
  187. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dlgtest.py +0 -145
  188. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dyndlg.py +0 -104
  189. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/fontdemo.py +0 -85
  190. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/guidemo.py +0 -53
  191. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/hiertest.py +0 -138
  192. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/menutest.py +0 -13
  193. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/objdoc.py +0 -57
  194. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/demoutils.py +0 -63
  195. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/flash.py +0 -95
  196. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/msoffice.py +0 -159
  197. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxserialtest.py +0 -132
  198. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxtest.py +0 -243
  199. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/webbrowser.py +0 -72
  200. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/openGLDemo.py +0 -415
  201. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/progressbar.py +0 -105
  202. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/sliderdemo.py +0 -76
  203. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/splittst.py +0 -79
  204. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/threadedgui.py +0 -189
  205. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/toolbar.py +0 -105
  206. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/__init__.py +0 -3
  207. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/__init__.py +0 -133
  208. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/configui.py +0 -34
  209. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgcon.py +0 -31
  210. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgpyapp.py +0 -48
  211. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/debugger.py +0 -1097
  212. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/fail.py +0 -54
  213. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/__init__.py +0 -0
  214. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/ideoptions.py +0 -136
  215. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/list.py +0 -146
  216. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/login.py +0 -155
  217. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/status.py +0 -242
  218. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/DockingBar.py +0 -676
  219. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/__init__.py +0 -0
  220. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/__init__.py +0 -0
  221. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/app.py +0 -411
  222. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/bitmap.py +0 -168
  223. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/cmdline.py +0 -54
  224. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dbgcommands.py +0 -188
  225. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dlgappcore.py +0 -76
  226. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/ModuleBrowser.py +0 -235
  227. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/__init__.py +0 -105
  228. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color/__init__.py +0 -0
  229. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color/coloreditor.py +0 -646
  230. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/configui.py +0 -299
  231. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/document.py +0 -379
  232. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/editor.py +0 -511
  233. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/frame.py +0 -74
  234. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/template.py +0 -59
  235. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/vss.py +0 -104
  236. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/help.py +0 -173
  237. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/interact.py +0 -995
  238. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpyapp.py +0 -552
  239. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpydde.py +0 -65
  240. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/scriptutils.py +0 -684
  241. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/sgrepmdi.py +0 -749
  242. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/startup.py +0 -70
  243. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/stdin.py +0 -172
  244. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/toolmenu.py +0 -279
  245. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/window.py +0 -14
  246. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/winout.py +0 -589
  247. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoExpand.py +0 -95
  248. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoIndent.py +0 -536
  249. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/CallTips.py +0 -216
  250. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/FormatParagraph.py +0 -166
  251. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/IdleHistory.py +0 -87
  252. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/PyParse.py +0 -585
  253. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/__init__.py +0 -1
  254. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/__init__.py +0 -0
  255. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/activex.py +0 -79
  256. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/afxres.py +0 -501
  257. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/dialog.py +0 -277
  258. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/docview.py +0 -151
  259. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/object.py +0 -66
  260. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/thread.py +0 -25
  261. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/window.py +0 -50
  262. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/IDLEenvironment.py +0 -593
  263. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/__init__.py +0 -1
  264. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/bindings.py +0 -180
  265. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/config.py +0 -363
  266. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/configui.py +0 -291
  267. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/control.py +0 -565
  268. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/document.py +0 -312
  269. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/find.py +0 -511
  270. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/formatter.py +0 -704
  271. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/keycodes.py +0 -190
  272. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/scintillacon.py +0 -3083
  273. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/view.py +0 -841
  274. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/TraceCollector.py +0 -79
  275. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/__init__.py +0 -0
  276. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browseProjects.py +0 -323
  277. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browser.py +0 -494
  278. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/hierlist.py +0 -353
  279. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regedit.py +0 -382
  280. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regpy.py +0 -80
  281. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupRead_BackupWrite.py +0 -119
  282. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupSeek_streamheaders.py +0 -137
  283. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CopyFileEx.py +0 -57
  284. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CreateFileTransacted_MiniVersion.py +0 -122
  285. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtFormatMessage.py +0 -83
  286. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_pull.py +0 -28
  287. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_push.py +0 -32
  288. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/FileSecurityTest.py +0 -137
  289. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/GetSaveFileName.py +0 -43
  290. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/NetValidatePasswordPolicy.py +0 -127
  291. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/OpenEncryptedFileRaw.py +0 -66
  292. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegCreateKeyTransacted.py +0 -60
  293. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegRestoreKey.py +0 -71
  294. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/SystemParametersInfo.py +0 -210
  295. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/c_extension/setup.py +0 -26
  296. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeclient.py +0 -18
  297. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeserver.py +0 -42
  298. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/desktopmanager.py +0 -246
  299. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/eventLogDemo.py +0 -143
  300. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/getfilever.py +0 -33
  301. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/mmapfile_demo.py +0 -101
  302. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/cat.py +0 -17
  303. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/runproc.py +0 -114
  304. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/print_desktop.py +0 -113
  305. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/rastest.py +0 -166
  306. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/GetTokenInformation.py +0 -110
  307. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/account_rights.py +0 -49
  308. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/explicit_entries.py +0 -170
  309. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/get_policy_info.py +0 -39
  310. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/list_rights.py +0 -35
  311. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/localized_names.py +0 -70
  312. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsaregevent.py +0 -14
  313. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsastore.py +0 -12
  314. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/query_information.py +0 -25
  315. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsave_sa.py +0 -61
  316. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsecurity.py +0 -36
  317. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sa_inherit.py +0 -8
  318. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/security_enums.py +0 -336
  319. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_audit.py +0 -106
  320. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_owner.py +0 -73
  321. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_policy_info.py +0 -25
  322. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setkernelobjectsecurity.py +0 -134
  323. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setnamedsecurityinfo.py +0 -131
  324. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setsecurityinfo.py +0 -131
  325. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setuserobjectsecurity.py +0 -102
  326. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/fetch_url.py +0 -158
  327. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/simple_auth.py +0 -72
  328. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/socket_server.py +0 -199
  329. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/validate_password.py +0 -41
  330. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/nativePipeTestService.py +0 -63
  331. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestService.py +0 -185
  332. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestServiceClient.py +0 -158
  333. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/serviceEvents.py +0 -98
  334. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/timer_demo.py +0 -72
  335. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboardDemo.py +0 -155
  336. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboard_bitmapdemo.py +0 -117
  337. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32comport_demo.py +0 -174
  338. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32console_demo.py +0 -132
  339. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32cred_demo.py +0 -82
  340. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32fileDemo.py +0 -41
  341. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_demo.py +0 -177
  342. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_devicenotify.py +0 -106
  343. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_dialog.py +0 -445
  344. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_menu.py +0 -464
  345. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_taskbar.py +0 -136
  346. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32netdemo.py +0 -272
  347. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32rcparser_demo.py +0 -86
  348. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32servicedemo.py +0 -23
  349. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32ts_logoff_disconnected.py +0 -25
  350. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/testwnet.py +0 -123
  351. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/winnetwk.py +0 -100
  352. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/winprocess.py +0 -230
  353. py2docfx/venv/venv1/Lib/site-packages/win32/lib/_win32verstamp_pywin32ctypes.py +0 -164
  354. py2docfx/venv/venv1/Lib/site-packages/win32/lib/afxres.py +0 -8
  355. py2docfx/venv/venv1/Lib/site-packages/win32/lib/commctrl.py +0 -1551
  356. py2docfx/venv/venv1/Lib/site-packages/win32/lib/mmsystem.py +0 -956
  357. py2docfx/venv/venv1/Lib/site-packages/win32/lib/netbios.py +0 -293
  358. py2docfx/venv/venv1/Lib/site-packages/win32/lib/ntsecuritycon.py +0 -731
  359. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_bootstrap.py +0 -21
  360. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_testutil.py +0 -291
  361. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywintypes.py +0 -124
  362. py2docfx/venv/venv1/Lib/site-packages/win32/lib/rasutil.py +0 -40
  363. py2docfx/venv/venv1/Lib/site-packages/win32/lib/regcheck.py +0 -161
  364. py2docfx/venv/venv1/Lib/site-packages/win32/lib/regutil.py +0 -395
  365. py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspi.py +0 -413
  366. py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspicon.py +0 -477
  367. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win2kras.py +0 -14
  368. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32con.py +0 -5064
  369. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32cryptcon.py +0 -1922
  370. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32evtlogutil.py +0 -225
  371. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32gui_struct.py +0 -957
  372. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32inetcon.py +0 -1086
  373. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32netcon.py +0 -627
  374. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhquery.py +0 -570
  375. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhutil.py +0 -212
  376. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32rcparser.py +0 -674
  377. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32serviceutil.py +0 -1073
  378. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32timezone.py +0 -1201
  379. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32traceutil.py +0 -59
  380. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32verstamp.py +0 -235
  381. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winerror.py +0 -7362
  382. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winioctlcon.py +0 -1079
  383. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winnt.py +0 -1347
  384. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winperf.py +0 -236
  385. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winxptheme.py +0 -8
  386. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/ControlService.py +0 -594
  387. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/BrandProject.py +0 -97
  388. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/bulkstamp.py +0 -156
  389. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/vssutil.py +0 -201
  390. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/backupEventLog.py +0 -46
  391. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/h2py.py +0 -194
  392. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/killProcName.py +0 -62
  393. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_postinstall.py +0 -733
  394. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_testall.py +0 -120
  395. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/rasutil.py +0 -98
  396. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/regsetup.py +0 -607
  397. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/setup_d.py +0 -111
  398. py2docfx/venv/venv1/Lib/site-packages/win32/test/handles.py +0 -175
  399. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_clipboard.py +0 -137
  400. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_exceptions.py +0 -213
  401. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_odbc.py +0 -264
  402. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_pywintypes.py +0 -111
  403. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_security.py +0 -166
  404. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_sspi.py +0 -229
  405. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32api.py +0 -273
  406. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32clipboard.py +0 -59
  407. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32cred.py +0 -91
  408. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32crypt.py +0 -144
  409. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32event.py +0 -119
  410. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32file.py +0 -1096
  411. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32gui.py +0 -227
  412. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32guistruct.py +0 -333
  413. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32inet.py +0 -108
  414. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32net.py +0 -23
  415. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32pipe.py +0 -148
  416. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32print.py +0 -24
  417. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32profile.py +0 -19
  418. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32rcparser.py +0 -70
  419. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32timezone.py +0 -16
  420. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32trace.py +0 -366
  421. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32ts.py +0 -19
  422. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32wnet.py +0 -174
  423. py2docfx/venv/venv1/Lib/site-packages/win32/test/testall.py +0 -223
  424. py2docfx/venv/venv1/Lib/site-packages/win32/winxpgui.py +0 -13
  425. py2docfx/venv/venv1/Lib/site-packages/win32com/__init__.py +0 -134
  426. py2docfx/venv/venv1/Lib/site-packages/win32com/client/CLSIDToClass.py +0 -60
  427. py2docfx/venv/venv1/Lib/site-packages/win32com/client/__init__.py +0 -717
  428. py2docfx/venv/venv1/Lib/site-packages/win32com/client/build.py +0 -771
  429. py2docfx/venv/venv1/Lib/site-packages/win32com/client/combrowse.py +0 -604
  430. py2docfx/venv/venv1/Lib/site-packages/win32com/client/connect.py +0 -48
  431. py2docfx/venv/venv1/Lib/site-packages/win32com/client/dynamic.py +0 -699
  432. py2docfx/venv/venv1/Lib/site-packages/win32com/client/gencache.py +0 -825
  433. py2docfx/venv/venv1/Lib/site-packages/win32com/client/genpy.py +0 -1350
  434. py2docfx/venv/venv1/Lib/site-packages/win32com/client/makepy.py +0 -453
  435. py2docfx/venv/venv1/Lib/site-packages/win32com/client/selecttlb.py +0 -182
  436. py2docfx/venv/venv1/Lib/site-packages/win32com/client/tlbrowse.py +0 -277
  437. py2docfx/venv/venv1/Lib/site-packages/win32com/client/util.py +0 -103
  438. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/__init__.py +0 -0
  439. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/connect.py +0 -96
  440. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/dump_clipboard.py +0 -74
  441. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsApartmentThreaded.py +0 -98
  442. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsFreeThreaded.py +0 -92
  443. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelAddin.py +0 -169
  444. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelRTDServer.py +0 -434
  445. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/iebutton.py +0 -214
  446. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/ietoolbar.py +0 -368
  447. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/outlookAddin.py +0 -135
  448. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/trybag.py +0 -78
  449. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/__init__.py +0 -1
  450. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegw.py +0 -618
  451. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwenum.py +0 -331
  452. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwparse.py +0 -1017
  453. py2docfx/venv/venv1/Lib/site-packages/win32com/olectl.py +0 -70
  454. py2docfx/venv/venv1/Lib/site-packages/win32com/server/__init__.py +0 -1
  455. py2docfx/venv/venv1/Lib/site-packages/win32com/server/connect.py +0 -85
  456. py2docfx/venv/venv1/Lib/site-packages/win32com/server/dispatcher.py +0 -239
  457. py2docfx/venv/venv1/Lib/site-packages/win32com/server/exception.py +0 -99
  458. py2docfx/venv/venv1/Lib/site-packages/win32com/server/factory.py +0 -26
  459. py2docfx/venv/venv1/Lib/site-packages/win32com/server/localserver.py +0 -53
  460. py2docfx/venv/venv1/Lib/site-packages/win32com/server/policy.py +0 -803
  461. py2docfx/venv/venv1/Lib/site-packages/win32com/server/register.py +0 -677
  462. py2docfx/venv/venv1/Lib/site-packages/win32com/server/util.py +0 -229
  463. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/PythonTools.py +0 -47
  464. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/__init__.py +0 -0
  465. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/dictionary.py +0 -133
  466. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/interp.py +0 -59
  467. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/perfmon.py +0 -36
  468. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/test_pycomtest.py +0 -181
  469. py2docfx/venv/venv1/Lib/site-packages/win32com/storagecon.py +0 -142
  470. py2docfx/venv/venv1/Lib/site-packages/win32com/test/GenTestScripts.py +0 -95
  471. py2docfx/venv/venv1/Lib/site-packages/win32com/test/__init__.py +0 -1
  472. py2docfx/venv/venv1/Lib/site-packages/win32com/test/daodump.py +0 -88
  473. py2docfx/venv/venv1/Lib/site-packages/win32com/test/errorSemantics.py +0 -243
  474. py2docfx/venv/venv1/Lib/site-packages/win32com/test/pippo_server.py +0 -96
  475. py2docfx/venv/venv1/Lib/site-packages/win32com/test/policySemantics.py +0 -115
  476. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testADOEvents.py +0 -100
  477. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAXScript.py +0 -44
  478. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAccess.py +0 -185
  479. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testArrays.py +0 -99
  480. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testClipboard.py +0 -169
  481. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testCollections.py +0 -159
  482. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testConversionErrors.py +0 -35
  483. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDCOM.py +0 -50
  484. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDates.py +0 -74
  485. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDictionary.py +0 -101
  486. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDynamic.py +0 -83
  487. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExchange.py +0 -121
  488. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExplorer.py +0 -139
  489. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGIT.py +0 -142
  490. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGatewayAddresses.py +0 -149
  491. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testIterators.py +0 -140
  492. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOffice.py +0 -184
  493. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOfficeEvents.py +0 -138
  494. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMarshal.py +0 -160
  495. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPersist.py +0 -227
  496. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPippo.py +0 -80
  497. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPyComTest.py +0 -918
  498. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testROT.py +0 -29
  499. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testServers.py +0 -51
  500. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testShell.py +0 -272
  501. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStorage.py +0 -88
  502. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStreams.py +0 -147
  503. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testWMI.py +0 -18
  504. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testall.py +0 -320
  505. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testmakepy.py +0 -54
  506. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvb.py +0 -583
  507. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvbscript_regexp.py +0 -40
  508. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testxslt.py +0 -34
  509. py2docfx/venv/venv1/Lib/site-packages/win32com/test/util.py +0 -262
  510. py2docfx/venv/venv1/Lib/site-packages/win32com/universal.py +0 -224
  511. py2docfx/venv/venv1/Lib/site-packages/win32com/util.py +0 -35
  512. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/__init__.py +0 -113
  513. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/adsicon.py +0 -340
  514. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/objectPicker.py +0 -68
  515. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/scp.py +0 -565
  516. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/search.py +0 -151
  517. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/test.py +0 -274
  518. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/__init__.py +0 -6
  519. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditSecurity.py +0 -229
  520. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditServiceSecurity.py +0 -219
  521. py2docfx/venv/venv1/Lib/site-packages/win32comext/axcontrol/__init__.py +0 -4
  522. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/__init__.py +0 -4
  523. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/adb.py +0 -467
  524. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/codecontainer.py +0 -279
  525. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/contexts.py +0 -58
  526. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/debugger.py +0 -238
  527. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/documents.py +0 -135
  528. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/dump.py +0 -57
  529. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/expressions.py +0 -212
  530. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/gateways.py +0 -583
  531. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/stackframe.py +0 -178
  532. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/util.py +0 -98
  533. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/__init__.py +0 -4
  534. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/asputil.py +0 -13
  535. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/__init__.py +0 -1
  536. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/debug.py +0 -223
  537. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/error.py +0 -262
  538. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/framework.py +0 -1291
  539. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pydumper.py +0 -78
  540. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript.py +0 -438
  541. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript_rexec.py +0 -54
  542. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/scriptdispatch.py +0 -103
  543. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/__init__.py +0 -0
  544. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/axsite.py +0 -145
  545. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/leakTest.py +0 -185
  546. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost.py +0 -240
  547. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost4Dbg.py +0 -83
  548. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/__init__.py +0 -6
  549. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/show_all_jobs.py +0 -48
  550. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/test_bits.py +0 -119
  551. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/__init__.py +0 -4
  552. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/__init__.py +0 -1
  553. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_record.py +0 -60
  554. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_test.py +0 -402
  555. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/__init__.py +0 -1
  556. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/demo/filterDemo.py +0 -300
  557. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/ifiltercon.py +0 -110
  558. py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/__init__.py +0 -4
  559. py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/inetcon.py +0 -261
  560. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/__init__.py +0 -21
  561. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/demos/mapisend.py +0 -98
  562. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/emsabtags.py +0 -875
  563. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapitags.py +0 -1023
  564. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapiutil.py +0 -211
  565. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/__init__.py +0 -1
  566. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/pscon.py +0 -838
  567. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/test/testpropsys.py +0 -5
  568. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/__init__.py +0 -4
  569. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IActiveDesktop.py +0 -83
  570. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IFileOperationProgressSink.py +0 -179
  571. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IShellLinkDataList.py +0 -67
  572. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/ITransferAdviseSink.py +0 -93
  573. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IUniformResourceLocator.py +0 -56
  574. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/browse_for_folder.py +0 -45
  575. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/create_link.py +0 -73
  576. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/dump_link.py +0 -58
  577. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/explorer_browser.py +0 -143
  578. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/column_provider.py +0 -125
  579. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/context_menu.py +0 -122
  580. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/copy_hook.py +0 -84
  581. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/empty_volume_cache.py +0 -188
  582. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/folder_view.py +0 -866
  583. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/icon_handler.py +0 -81
  584. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/shell_view.py +0 -971
  585. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/shellexecuteex.py +0 -19
  586. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/viewstate.py +0 -68
  587. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/walk_shell_folders.py +0 -24
  588. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/shellcon.py +0 -1615
  589. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testSHFileOperation.py +0 -75
  590. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellFolder.py +0 -21
  591. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellItem.py +0 -69
  592. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/__init__.py +0 -6
  593. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask.py +0 -66
  594. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_1.py +0 -68
  595. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_2.py +0 -49
  596. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_localsystem.py +0 -3
  597. py2docfx/venv/venv1/Scripts/pywin32_postinstall.py +0 -733
  598. py2docfx/venv/venv1/Scripts/pywin32_testall.py +0 -120
  599. {py2docfx-0.1.15.dev2025736.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/WHEEL +0 -0
  600. {py2docfx-0.1.15.dev2025736.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)