|
| 1 | +from collections.abc import Callable, Iterable, Mapping |
| 2 | +from typing import Final, Literal, Protocol, TypedDict, TypeVar, type_check_only |
| 3 | +from typing_extensions import Unpack |
| 4 | + |
| 5 | +from _win32typing import PyHKEY, PyIID |
| 6 | + |
| 7 | +_T = TypeVar("_T", PyHKEY, int) |
| 8 | + |
| 9 | +@type_check_only |
| 10 | +class _RegisterClass(Protocol): |
| 11 | + _reg_clsid_: PyIID |
| 12 | + |
| 13 | +@type_check_only |
| 14 | +class _RegisterFlag(TypedDict, total=False): |
| 15 | + quiet: bool |
| 16 | + debug: bool |
| 17 | + finalize_register: Callable[[], None] |
| 18 | + |
| 19 | +@type_check_only |
| 20 | +class _UnregisterFlag(TypedDict, total=False): |
| 21 | + quiet: bool |
| 22 | + finalize_unregister: Callable[[], None] |
| 23 | + |
| 24 | +@type_check_only |
| 25 | +class _ElevatedFlag(TypedDict, total=False): |
| 26 | + quiet: bool |
| 27 | + unattended: bool |
| 28 | + hwnd: int |
| 29 | + |
| 30 | +@type_check_only |
| 31 | +class _CommandFlag(_RegisterFlag, _UnregisterFlag, _ElevatedFlag): # type: ignore[misc] |
| 32 | + ... |
| 33 | + |
| 34 | +CATID_PythonCOMServer: Final = "{B3EF80D0-68E2-11D0-A689-00C04FD658FF}" |
| 35 | + |
| 36 | +def recurse_delete_key(path: str | None, base: PyHKEY | int = -2147483648) -> None: ... |
| 37 | +def RegisterServer( |
| 38 | + clsid: PyIID, |
| 39 | + pythonInstString: str | None = None, |
| 40 | + desc: str | None = None, |
| 41 | + progID: str | None = None, |
| 42 | + verProgID: str | None = None, |
| 43 | + defIcon: str | None = None, |
| 44 | + threadingModel: Literal["apartment", "both", "free", "neutral"] = "both", |
| 45 | + policy: str | None = None, |
| 46 | + catids: list[PyIID] = [], |
| 47 | + other: Mapping[str, str] = {}, |
| 48 | + addPyComCat: bool | None = None, |
| 49 | + dispatcher: str | None = None, |
| 50 | + clsctx: int | None = None, |
| 51 | + addnPath: str | None = None, |
| 52 | +) -> None: ... |
| 53 | +def GetUnregisterServerKeys( |
| 54 | + clsid: PyIID, progID: str | None = None, verProgID: str | None = None, customKeys: Iterable[tuple[str, _T]] | None = None |
| 55 | +) -> list[tuple[str, _T | int]]: ... |
| 56 | +def UnregisterServer( |
| 57 | + clsid: PyIID, |
| 58 | + progID: str | None = None, |
| 59 | + verProgID: str | None = None, |
| 60 | + customKeys: Iterable[tuple[str, PyHKEY | int]] | None = None, |
| 61 | +) -> None: ... |
| 62 | +def GetRegisteredServerOption(clsid: PyIID, optionName: str) -> str | None: ... |
| 63 | +def RegisterClasses(*classes: type[_RegisterClass], **flags: Unpack[_RegisterFlag]) -> None: ... |
| 64 | +def UnregisterClasses(*classes: type[_RegisterClass], **flags: Unpack[_UnregisterFlag]) -> None: ... |
| 65 | +def UnregisterInfoClasses(*classes: type[_RegisterClass]) -> list[tuple[str, PyHKEY | int]]: ... |
| 66 | +def ReExecuteElevated(flags: _ElevatedFlag) -> None: ... |
| 67 | +def UseCommandLine(*classes: type[_RegisterClass], **flags: Unpack[_CommandFlag]) -> list[tuple[str, PyHKEY | int]] | None: ... |
| 68 | +def RegisterPyComCategory() -> None: ... |
0 commit comments