Ошибка при открытии файла в приложении Win10 Modern, запущенном с рабочего стола C++

Я пытаюсь открыть файл изображения с помощью приложения 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 неоднозначна».

Любые советы о том, как это исправить? ТИА.


person chrisd    schedule 14.02.2016    source источник
comment
Вы пробовали ShellExecute?   -  person Peter Torr - MSFT    schedule 14.02.2016
comment
Да. В чистой системе Win10 (не обновленной с Win7/8) ShellExecute дает сбой, утверждая, что связи нет. И, на самом деле, в HKCR/pngfile (или любом другом типе изображения) нет ключа Shell/Open.   -  person chrisd    schedule 14.02.2016
comment
Можно ли дважды щелкнуть файл PNG в проводнике Windows? Вы используете выпущенную сборку Windows или инсайдерскую версию?   -  person Peter Torr - MSFT    schedule 15.02.2016
comment
Да, если я дважды щелкну PNG в Проводнике, он откроется в Фото. Это выпущенная сборка Windows 10 Enterprise.   -  person chrisd    schedule 15.02.2016