//--连接浏览器SHELL窗口的代码
// connShell.cpp : Defines the entry point for the console application. //
#include "stdafx.h"
//#import "shdocvw.dll" exclude("tagREADYSTATE") #import "shdocvw.dll" //#import "shdocvw.dll" rename_namespace("SHELL_WINDOW") //using namespace SHELL_WINDOW; #define SHELL_WINDOW SHDocVw
#include <iostream> using namespace std;
int main(int argc, char* argv[]) { cout << "---test---" << endl; //--COM CoInitialize(NULL); do { cout << "---list all Shell Window---" << endl;
SHELL_WINDOW::IShellWindowsPtr msp_SHWinds = NULL; HRESULT hr = msp_SHWinds.CreateInstance(__uuidof(SHELL_WINDOW::ShellWindows)); if (S_OK != hr || NULL == msp_SHWinds) { cout << "FAILED." << endl; break; } int count = 0; int Count = msp_SHWinds->GetCount(); for (int i = 0; i < Count; i++) { _variant_t va(long(i), VT_I4); IDispatchPtr sp_Disp; sp_Disp = msp_SHWinds->Item(va); SHELL_WINDOW::IWebBrowser2Ptr sp_Browser(sp_Disp); //SHELL_WINDOW::IWebBrowser2Ptr sp_Browser = sp_Disp;//--OK if (NULL != sp_Browser) { count ++; cout << (char*)sp_Browser->GetLocationName() << endl;
sp_Browser.Release(); } } msp_SHWinds.Release();
cout << "---list count=" << count << "---" << endl; break; } while (false); //--COM //CoUninitialize();//--??? OleUninitialize(); return 0; }

|