Я пытаюсь открыть файл изображения с помощью приложения Windows 10 Photos (которое является «современным» приложением) с рабочего стола C++, используя следующий код (проверки ошибок для простоты опущены):
DWORD pid;
CComPtr<IApplicationActivationManager> paam;
CoCreateInstance(CLSID_ApplicationActivationManager, NULL, CLSCTX_LOCAL_SERVER, IID_PPV_ARGS(&paam));
CoAllowSetForegroundWindow(paam, NULL);
paam->ActivateForFile(pwszAppUserModelId, psia, L"open", &pid);
pwszAppUserModelId
— это идентификатор модели пользователя приложения для приложения «Фотографии». psia
— это указатель на IShellItemArray
, который содержит один IShellItem
для файла изображения (PNG).
ActivateForFile
возвращает ошибку 0x80270255:
«В этом приложении зарегистрировано несколько расширений для поддержки указанного контракта. Активация по AppUserModelId неоднозначна».
Любые советы о том, как это исправить? ТИА.