利用VC得到当前IE的Cookie

来源:互联网 发布:javascript 编辑:程序博客网 时间:2024/06/06 22:45

// 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;
}

原创粉丝点击