Security Manager
От: alexxx_ltd  
Дата: 05.06.06 11:40
Оценка:
Добрый день.

Возникла необходимость написания этого самого менеджера (нужно получить достут к событиям DHTML во фреймовом документе в частности).
...первые неприятности... пишу:

    CComPtr<IInternetSecureManager> pSM = NULL;
    CComPtr<IInternetSecurityManager> pSecurityMgr = NULL;
    CComPtr<IServiceProvider> pSp = NULL;

            CoCreateInstance(CLSID_InternetSecurityManager, NULL, CLSCTX_INPROC_SERVER,
                IID_IInternetSecurityManager, (void**)&pSecurityMgr);
            if (pSecurityMgr)
            {
                                // 1
                AfxMessageBox("pSecurityMgr");
                CComPtr<IUnknown> pUnk = NULL;
                pSecurityMgr->QueryInterface(IID_IUnknown, (void **) &pUnk);
                if (pUnk)
                {
                                        // 2
                    AfxMessageBox("pUnk");
                    CComPtr<IServiceProvider> pSp = NULL;
                    pUnk->QueryInterface (IID_IServiceProvider,    (void **) &pSp);
                    if (pSp)
                    {
                                                // 3
                        AfxMessageBox("pSp");
                        pSp->QueryService (SID_SInternetSecurityManager, __uuidof(IInternetSecurityManager), (void**) &pSM);
                        if (pSM)
                        {
                            AfxMessageBox("pSm");
                        }
                    }
                }
            }


Причем 3-й мессаджбокс никогда не появляется (pSp всегда NULL. т.е IInternetSecurityManager не поддерживает IServiceProvider ? ). На сколько я понял из ПОИСКа и МСДН, проблем в этом месте быть не должно или в чем я не прав ?

Заранее спасибо.
Re: Security Manager
От: alexxx_ltd  
Дата: 08.06.06 10:06
Оценка:
Никто не знает?

Интересует прежде всего правильность идеи, т.е сначала получаем указатель на системный SecurityManager (IInternetSecurityManager), затем запрашиваем у него IServiceProvider и уже у него через метод QueryService, подставляя в качестве 3-го параметра указатель на свою реалицацию SecurityManager`а, получаем фунициклирующий собственный SecurityManager?
Re: Security Manager
От: alexxx_ltd  
Дата: 20.06.06 13:56
Оценка:
Up
Re: Security Manager
От: alexxx_ltd  
Дата: 11.07.06 10:31
Оценка:
Здравствуйте, alexxx_ltd, Вы писали:

_>Добрый день.


_>Возникла необходимость написания этого самого менеджера (нужно получить достут к событиям DHTML во фреймовом документе в частности).

_>...первые неприятности... пишу:

_>
_>    CComPtr<IInternetSecureManager> pSM = NULL;
_>    CComPtr<IInternetSecurityManager> pSecurityMgr = NULL;
_>    CComPtr<IServiceProvider> pSp = NULL;

_>            CoCreateInstance(CLSID_InternetSecurityManager, NULL, CLSCTX_INPROC_SERVER,
_>                IID_IInternetSecurityManager, (void**)&pSecurityMgr);
_>            if (pSecurityMgr)
_>            {
_>                                // 1
_>                AfxMessageBox("pSecurityMgr");
_>                CComPtr<IUnknown> pUnk = NULL;
_>                pSecurityMgr->QueryInterface(IID_IUnknown, (void **) &pUnk);
_>                if (pUnk)
_>                {
_>                                        // 2
_>                    AfxMessageBox("pUnk");
_>                    CComPtr<IServiceProvider> pSp = NULL;
                    pUnk->>QueryInterface (IID_IServiceProvider,    (void **) &pSp);
_>                    if (pSp)
_>                    {
_>                                                // 3
_>                        AfxMessageBox("pSp");
                        pSp->>QueryService (SID_SInternetSecurityManager, __uuidof(IInternetSecurityManager), (void**) &pSM);
_>                        if (pSM)
_>                        {
_>                            AfxMessageBox("pSm");
_>                        }
_>                    }
_>                }
_>            }

_>


_>Причем 3-й мессаджбокс никогда не появляется (pSp всегда NULL. т.е IInternetSecurityManager не поддерживает IServiceProvider ? ). На сколько я понял из ПОИСКа и МСДН, проблем в этом месте быть не должно или в чем я не прав ?


_>Заранее спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.