Добрый день.
Возникла необходимость написания этого самого менеджера (нужно получить достут к событиям 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 ?

). На сколько я понял из ПОИСКа и МСДН, проблем в этом месте быть не должно или в чем я не прав ?
Заранее спасибо.
Здравствуйте, 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 ?
). На сколько я понял из ПОИСКа и МСДН, проблем в этом месте быть не должно или в чем я не прав ?
_>Заранее спасибо.