您的位置:首页 > 其它

利用VC得到当前IE的Cookie

2009-03-21 22:42 155 查看
// by sojoo

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

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: