BHO-2
http://eternalwindows.jp/browser/mshtml/mshtml01.html
の関数を、
http://msdn.microsoft.com/ja-jp/library/bb250489(v=vs.85).aspx
のなかに組み込みたいと思っています。
BOOL CHelloWorldBHO::GetDocumentFromIE(IHTMLDocument3 **pp)
{
HWND hwnd;
UINT uMsg;
LRESULT lResult;
HRESULT hr;
EnumChildWindows(FindWindow(TEXT("IEFrame"), NULL), EnumChildProc, (LPARAM)&hwnd);
if (hwnd == NULL){
return FALSE;
}
uMsg = RegisterWindowMessage(TEXT("WM_HTML_GETOBJECT"));
if (!SendMessageTimeout(hwnd, uMsg, 0, 0, SMTO_ABORTIFHUNG, 1000, (LPDWORD)&lResult)){
MessageBox(NULL, L"WM_HTML_GETOBJECT", L"BHO", MB_OK);
return FALSE;
}
hr = ObjectFromLresult(lResult, IID_IHTMLDocument3, 0, (void **)pp);
if (FAILED(hr))
return FALSE;
MessageBox(NULL, L"Hello World! ie-end", L"BHO", MB_OK);
return TRUE;
}
で、
uMsg = RegisterWindowMessage(TEXT("WM_HTML_GETOBJECT"));
if (!SendMessageTimeout(hwnd, uMsg, 0, 0, SMTO_ABORTIFHUNG, 1000, (LPDWORD)&lResult)){
MessageBox(NULL, L"WM_HTML_GETOBJECT", L"BHO", MB_OK);
return FALSE;
}
の部分で失敗します。
原因はなんでしょうか・
VS2005 と Win7 を使っています。
MessageBox(NULL, L"WM_HTML_GETOBJECT", L"BHO", MB_OK); はバグの確認のため入れてあります。
アドバイスよろしくお願いします。
お礼
回答ありがとうございます。 ご教授いただいた点を考慮して修正を行ったところ、上手くいきました。 また機会があればよろしくお願いします。