2016-11-10 11 views
0

Windows 기반 응용 프로그램이 있습니다. 다음과 같은 방법으로 제어판 항목을 열려고합니다.C++ - 동일한 창에서 제어판 항목 열기

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);