ynkdir/py-win32more

RoActivateInstance fails when initialized with TryCreatePackageDependency and AddPackageDependency

Opened this issue · 0 comments

reproducible code

from win32more._winrt import _ro_activate_instance
from win32more.mddbootstrap import _Initialize_Win11
from win32more.Microsoft.Windows.AppNotifications.Builder import AppNotificationBuilder, AppNotificationButton
from win32more.Windows.Win32.Storage.Packaging.Appx import PACKAGE_VERSION
from win32more.Windows.Win32.System.Com import COINIT_APARTMENTTHREADED, CoInitializeEx, CoUninitialize

def main() -> None:
    CoInitializeEx(None, COINIT_APARTMENTTHREADED)

    # Initialize with TryCreatePackageDependency and AddPackageDependency.
    _Initialize_Win11("Microsoft.WindowsAppRuntime.1.5_8wekyb3d8bbwe", PACKAGE_VERSION(Version=0))

    # first call will success
    print(_ro_activate_instance(AppNotificationBuilder._classid_, AppNotificationBuilder))

    # second call will fail
    try:
        print(_ro_activate_instance(AppNotificationButton._classid_, AppNotificationButton))
    except Exception as e:
        print(e)

    CoUninitialize()


if __name__ == "__main__":
    main()

result

<AppNotificationBuilder object at 0x000002AD772B0950>
[WinError -2147221164] Class not registered

watch TODO_WindowsAppSDKAggregator_Test_Failures
https://github.com/microsoft/WindowsAppSDK/blob/main/dev/DynamicDependency/API/MddWin11.h#L98