네.. Invoke 함수는 보통 다음과 같지요...
STDMETHODIMP CIEAutomation::Invoke(DISPID dispidMember, REFIID riid, LCID lcid,
WORD wFlags, DISPPARAMS* pDispParams,
VARIANT* pvarResult, EXCEPINFO* pExcepInfo,
UINT* puArgErr)
여기서 다음과 같이 사용하시면 됩니다. 다른 것들에 대해서도 같이 나열해 보았습니다.
해당 이벤트에 대해서는 MSDN에서 'DWebBrowserEvents2 Interface' 을 보시면 인자들이 어떻게 되는지 알 수 있습니다.
한 가지 주의하실 점은 이벤트 핸들러 함수를 호출할 때 넣어주는 인자는 역순으로 넣어주면 된다는 것입니다.
switch(dispidMember)
{
case DISPID_DOCUMENTCOMPLETE:
DocumentComplete(pDispParams->rgvarg[1].pdispVal,
pDispParams->rgvarg[0].pvarVal);
break;
case DISPID_BEFORENAVIGATE2:
BeforeNavigate(pDispParams->rgvarg[6].pdispVal,
pDispParams->rgvarg[5].pvarVal,
pDispParams->rgvarg[4].pvarVal,
pDispParams->rgvarg[3].pvarVal,
pDispParams->rgvarg[2].pvarVal,
pDispParams->rgvarg[1].pvarVal,
pDispParams->rgvarg[0].pboolVal);
break;
case DISPID_NAVIGATECOMPLETE2:
NavigateComplete(pDispParams->rgvarg[1].pdispVal, pvarResult);
break;
...
}
|