STDMETHODIMP CDispatchSink::Invoke(DISPID dispidMember, REFIID riid,
LCID lcid, WORD wFlags,
DISPPARAMS* pdispparams, VARIANT*
pvarResult, EXCEPINFO* pexcepinfo,
UINT* puArgErr)
{
HRESULT hr = S_OK;
if (pdispparams)
{
switch (dispidMember)
{
case 2:
{
if (pdispparams->cArgs == 1)
{
if (pdispparams->rgvarg[0].vt == VT_I2)
Event2(pdispparams->rgvarg[0].iVal);
else
hr = DISP_E_TYPEMISMATCH;
}
else
hr = DISP_E_BADPARAMCOUNT;
break;
}
// Other desired case statements[ASCII 133].
default:
{
hr = DISP_E_MEMBERNOTFOUND;
break;
}
}
}
else
hr = DISP_E_PARAMNOTFOUND;
return hr;
}
LCID lcid, WORD wFlags,
DISPPARAMS* pdispparams, VARIANT*
pvarResult, EXCEPINFO* pexcepinfo,
UINT* puArgErr)
{
HRESULT hr = S_OK;
if (pdispparams)
{
switch (dispidMember)
{
case 2:
{
if (pdispparams->cArgs == 1)
{
if (pdispparams->rgvarg[0].vt == VT_I2)
Event2(pdispparams->rgvarg[0].iVal);
else
hr = DISP_E_TYPEMISMATCH;
}
else
hr = DISP_E_BADPARAMCOUNT;
break;
}
// Other desired case statements[ASCII 133].
default:
{
hr = DISP_E_MEMBERNOTFOUND;
break;
}
}
}
else
hr = DISP_E_PARAMNOTFOUND;
return hr;
}
'COM, ATL' 카테고리의 다른 글
COM인터페이스 디자인 가이드 (0) | 2008.08.18 |
---|---|
lcid 로케일 (0) | 2008.08.18 |
IDispatch::Invoke (1) | 2008.08.16 |
자동화에서 타입라이브러리 등록과 해제 코드 (0) | 2008.08.14 |
COM 개체 구현 실습 (2) | 2008.08.14 |
com을 위한 기초 (3) | 2008.08.14 |
표준 프락시 스텁 dll 작성법 및 기본개념들 (0) | 2008.08.14 |