スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--.--.-- | スポンサー広告

COMプログラム~

今日も特に進捗がありません(´・ω・`)
時間がorz

それにしても一見ウイルスが減ってセキュリティ意識も高くなって
インターネットが安全になってきているように見えるけど
実際にはユーザーに見えないように地下に潜っているだけなんだよな……

こういうものを見ると危機感を覚えて来る……
http://internet.watch.impress.co.jp/cda/news/2005/10/04/9350.html
http://nikkeibp.jp/sj2005/interview/22/
http://itpro.nikkeibp.co.jp/free/ITPro/NEWS/20050727/165402/



ATLを使用しないIEのイベント取得-3
※前回思いっきりクラス名を間違えていたのでひっそりと修正しておきましたorz
今回は前回作成したイベントシンククラスを使用して
IEのイベントの取得を行います。
main.cpp

#include "StdAfx.h"
#include "IEEventSink.h"

int main(int argc, char *argv[])
{
IWebBrowser2 *web_browser;

CoInitialize(NULL);
CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_ALL,
IID_IWebBrowser2, (void **)&web_browser);

_variant_t url = "http://www.google.co.jp";

web_browser->put_Visible(VARIANT_TRUE);
web_browser->Navigate2(&url, &_variant_t(), &_variant_t(),
&_variant_t(), &_variant_t());

READYSTATE state;
// HTML ドキュメントがすべて表示されるまで待つ
while(true)
{
if(web_browser->get_ReadyState(&state) != S_OK){
printf("document read error!\n");
web_browser->Quit();
web_browser->Release();
CoUninitialize();
return -1;
}
if(state == READYSTATE_COMPLETE)
break;
}

HRESULT hr;
IConnectionPointContainer *cpc;
IConnectionPoint *cp;
IDispatch *advice_dispatch;
DWORD cookie;

// オブジェクトがイベントを発行できるかチェック
hr = web_browser->QueryInterface(IID_IConnectionPointContainer,
(void**)&cpc);

if(SUCCEEDED(hr))
{
// 接続ポイントの要求
hr = cpc->FindConnectionPoint(DIID_DWebBrowserEvents2, &cp);

if(SUCCEEDED(hr))
{
IEEventSink *ie_event;
ie_event = new IEEventSink();

ie_event->QueryInterface(IID_IDispatch,
(void **)&advice_dispatch);
// 接続~
hr = cp->Advise(advice_dispatch, &cookie);

if(SUCCEEDED(hr))
{
printf("advice success!\n");
}

cp = NULL;
}

cpc = NULL;
}

advice_dispatch->Release();
web_browser->Quit();
web_browser->Release();
CoUninitialize();

return 0;
}

StdAfx.h

#pragma once
#include <comdef.h>
#include <shlobj.h>
#include <exdispid.h>

上記を見ても分かるようにATLとほとんど変わらないと思います。

スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

2005.10.20 | Comments(0) | Trackback(0) | プログラム

コメント

コメントの投稿


秘密にする

«  | HOME |  »

ブロとも申請フォーム

この人とブロともになる

カウンター


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。