IDispEventImplでの質問 – プログラミング – Home

通知
すべてクリア

IDispEventImplでの質問


浅果
 浅果
(@浅果)
ゲスト
結合: 17年前
投稿: 2
Topic starter  

VisualStudio 2005 で IDispEventImplを使用して DIID_DWebBrowserEvents2
と、DIID_HTMLDocumentEvents2 のイベントを捕まえるプログラムを書いています。

DWebBrowserEvents2 で DISPID_NAVIGATECOMPLETE2 などのイベントは
問題なく捕まえることができるのですが、DISPID_ONVISIBLEのイベントを捕まえたとき
に、以下の関数でASSERTが出てしまいます。
 
HRESULT InvokeFromFuncInfo(void (__stdcall T::*pEvent)(), _ATL_FUNC_INFO&
info, DISPPARAMS* pdispparams, VARIANT* pvarResult)

また、DIID_HTMLDocumentEvents2でDISPID_CLICKのイベントを捕まえたときも
同じようにASSERTが表示されてしまいます。

どのような時に、ASSERTが表示されるのでしょうか? ご教授お願いいたします。


引用解決済
トピックタグ
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

ASSERTと言うのはメッセージボックスが出ると言う話でしょうか?
もしそうならメッセージボックスの表示内容を提示するべきだと
思うのですが、いかがでしょうか?

メッセージボックスの表示内容から何か手がかりはつかめないのでしょうか?
通常はASSERTは手がかりを提示するために出ていると思いますけれど。


返信引用
浅果
 浅果
(@浅果)
ゲスト
結合: 17年前
投稿: 2
Topic starter  

ASSERTは
以下の場所で表示され、「呼び出し先が無効」と表示されます。
このASSERTは、自分が用意した 
OnVisible()関数を通過した後に表示されるので、呼び出し先とはどこのことなのか
わかりません。

HRESULT hr = DispCallFunc(
  &thunk,
  0,
  info.cc,
  info.vtReturn,
  info.nParams,
  info.pVarTypes,
  pVarArgs,
  pvarResult);
ATLASSERT(SUCCEEDED(hr));


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました