Цель
Иногда документация по COM-интерфейсу бывает скудной или вообще отсутствует. Как бы нам ни хотелось видеть подробную и детализированную документацию, в большинстве случаев это не так. Вот простой скрипт Python для перечисления методов и элементов COM-объекта Windows, такого как Windows Media Player.
Это требует:
from inspect import getmembers import win32com.client def print_members(obj, obj_name="WMPlayer.OCX"): """Print members of given COM object""" try: fields = list(obj._prop_map_get_.keys()) except AttributeError: print("Object has no attribute '_prop_map_get_'") print("Check if the initial COM object was created with" "'win32com.client.gencache.EnsureDispatch()'") raise methods = [m[0] for m in getmembers(obj) if (not m[0].startswith("_") and "clsid" not in m[0].lower())] if len(fields) + len(methods) > 0: print("Members of '{}' ({}):".format(obj_name, obj)) else: raise ValueError("Object has no members to print") print("\tFields:") if fields: for field in fields: print(f"\t\t{field}") else: print("\t\tObject has no fields to print") print("\tMethods:") if methods: for method in methods: print(f"\t\t{method}") else: print("\t\tObject has no methods to print") print_members(win32com.client.gencache.EnsureDispatch("WMPlayer.OCX"))