获取所有打开的 ie 窗口的 cookie

#define UNICODE#define _UNICODE #include <tchar.h>#include <stdio.h>#include <Windows.h>#include <mshtml.h>#include <ExDisp.h> int main(int argc, char...

#define UNICODE
#define _UNICODE

#include <tchar.h>
#include <stdio.h>
#include <Windows.h>
#include <mshtml.h>
#include <ExDisp.h>

int main(int argc, char* argv[])
{
   HRESULT hr;
   CoInitialize(NULL);
 
   IShellWindows * lpShellWindows;

   hr = CoCreateInstance(CLSID_ShellWindows, NULL, 1, IID_IShellWindows, (PVOID*)&lpShellWindows);
   if ( hr == S_OK )
   {
     IDispatch* lpDispatch;
     long nCount;

     lpShellWindows->get_Count(&nCount);
     for ( long i = 0; i < nCount; i++ )
     {
       VARIANT varIndex;

       varIndex.vt = VT_I4;
       varIndex.intVal = i;

       hr = lpShellWindows->Item(varIndex, &lpDispatch);
       if ( hr == S_OK )
       {
         IWebBrowser2* lpWebBrowser2;

         hr = lpDispatch->QueryInterface(IID_IWebBrowser2, (PVOID*)&lpWebBrowser2);
         if ( hr == S_OK )
         {
           IDispatch* lpDispatch;

           // lpWebBrowser2->get_HWND();

           hr = lpWebBrowser2->get_Document(&lpDispatch);
           if ( hr == S_OK )
           {
             IHTMLDocument2* lpDocument2;

             hr = lpDispatch->QueryInterface(IID_IHTMLDocument2, (PVOID*)&lpDocument2);
             if ( hr == S_OK )
             {
               BSTR bstrCookie;

               hr = lpDocument2->get_cookie(&bstrCookie);
               if ( hr == S_OK )
               {
                 MessageBox(NULL, bstrCookie, NULL, 0);
                 SysFreeString(bstrCookie);
               }

               lpDocument2->Release();
             }

             lpDispatch->Release();
           }

           lpWebBrowser2->Release();
         }

         lpDispatch->Release();
       }
     }

     lpShellWindows->Release();
   }

   CoUninitialize();
   return 0;
}

  • 发表于 2021-04-17 06:45
  • 阅读 ( 377 )
  • 分类:互联网

0 条评论

请先 登录 后评论
时光影子
时光影子

647 篇文章

你可能感兴趣的文章

相关问题