IApplicationActivationManager - это тип интерфейса COM. COM-объекты всегда создаются динамически во время выполнения, они не имеют требования к связям за пределами ole32.lib, возможно, .lib, который определяет GUID для объекта. Вы получаете указатель интерфейса с универсальной фабрикой COM-объектов, CoCreateInstance().
Образец, вероятно, помогает, я отправлю код для консольного режима Win32, который активирует приложение погоды в Windows 8. Создайте проект из предоставленного шаблона проекта VS. Никаких изменений не требуется, шаблон уже связывает все, что необходимо (kernel32.lib, ole32.lib и uuid.lib).
#include "stdafx.h"
#include <Windows.h>
#include <ShlObj.h>
#include <assert.h>
int main()
{
auto hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
assert(SUCCEEDED(hr));
IApplicationActivationManager* itf;
hr = CoCreateInstance(CLSID_ApplicationActivationManager, NULL,
CLSCTX_LOCAL_SERVER,
__uuidof(IApplicationActivationManager),
(void**)&itf);
if (SUCCEEDED(hr)) {
auto weatherApp = L"Microsoft.BingWeather_8wekyb3d8bbwe!App";
DWORD dontuse;
hr = itf->ActivateApplication(weatherApp,
L"", AO_NONE, &dontuse);
assert(SUCCEEDED(hr));
itf->Release();
}
CoUninitialize();
return 0;
}
Вам нужна модель пользователя идентификатор приложения для приложения, которое вы хотите активировать, this MSDN page описывает, как обнаружить их.
Спасибо. Помогает. Я хочу отобразить изображение * .png, * .jpg и т. Д., Используя приложение «Photos metro» из моего консольного приложения, и я хочу ТОЛЬКО использовать объекты в «mincore.lib» и ничего за его пределами. Я не думаю, что kernel32.lib, ole32.lib и т. Д. Является presemnt в mincore.lib? Я изучаю, как я могу это достичь? Также во втором аргументе ActivateApplication(), если я укажу имя изображения «abc.png», оно отобразится. ? – codeLover
Mincore.lib в порядке, вы должны были это узнать самостоятельно. Вы не можете просто передать «abc.png», требуется полное имя пути. Как c: \ foo \ bar \ abc.png. –
Я даю ему что-то вроде этого: LPCWSTR imageArg = L "C: \\ data \\ Users \\ Public \\ Pictures \\ Muscles-Posterior.png"; ч = paam-> ActivateApplication (APPID, imageArg, AO_NONE, &pid); Но это просто открыть приложение фотографий, но не открывая файла изображения «PNG»? – codeLover