Открыть элемент панели управления в том же окне

У меня есть приложение для Windows. Я пытаюсь открыть элемент панели управления следующим образом:

EnumWindows(EnumWindowsProcMy, ppid);
IOpenControlPanel *pPanel = NULL;
CoInitialize(nullptr);
HRESULT hr = CoCreateInstance(CLSID_OpenControlPanel, NULL,
CLSCTX_INPROC_SERVER, IID_IOpenControlPanel,
(void**)&pPanel);
if (FAILED(hr)) {
return -1;
}
pPanel->Open(CUSTOM_GUID, NULL, NULL);

Это, однако, открывает элемент панели управления в новом окне. Есть ли способ перейти к элементу панели управления в уже открытом окне? У меня есть ручка к окну.

0

Решение

Если у вас уже есть запущенный экземпляр панели управления, вы можете сделать что-то вроде.

Получает указатель на запущенный объект, который был зарегистрирован.

Образец кода

IUnknown *puk = NULL;
HRESULT hr = GetActiveObject(CLSID_OpenControlPanel, 0, &puk);
return (hr == S_OK);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]