Re: интерфейсы нескольких экземпляров одного приложения
От: VolaND_666  
Дата: 08.09.05 13:05
Оценка:
Вот решение


IRunningObjectTable* pTable = NULL; 
    GetRunningObjectTable(0, &pTable);
    if(pTable)
    {
        IEnumMoniker* pEnum = NULL;
        pTable->EnumRunning(&pEnum);
        if(pEnum)
        {
            HRESULT hRes = S_OK;
            pEnum->Reset();
            
            while(hRes == S_OK)
            {
                ULONG iFetch;
                IMoniker* pMoniker = NULL;
                hRes = pEnum->Next(1, &pMoniker, &iFetch);
                if(hRes == S_OK) 
                {
                    if(pMoniker)
                    {                        
                        IUnknown* pUnk = NULL;
                        pTable->GetObject(pMoniker, &pUnk);
                        if(pUnk)
                        {
                            ITDMSApplication* ppTDMSApp;
                            
                            pUnk->QueryInterface(IID_ITDMSApplication, (void**)&ppTDMSApp);
                            if(ppTDMSApp)
                            {
                                ppTDMSApp->Release();
                            }
                            pUnk->Release();
                        }
                        pMoniker->Release();
                    }
                }
            }
        }

        pTable->Release();
    }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.