return S_OK; } HRESULT STDMETHODCALLTYPE Chapter::GetTypeInfo(/* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo) { if (FAILED(ensureTypeInfo())) { return E_FAIL; } *ppTInfo = typeInfo_; return S_OK; } HRESULT STDMETHODCALLTYPE Chapter::GetIDsOfNames(/* [in] */ __RPC__in REFIID riid, /* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames, /* [range][in] */ __RPC__in_range(0, 16384) UINT cNames, /* [in] */ LCID lcid, /* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId) { if (FAILED(ensureTypeInfo())) { return E_FAIL; } return DispGetIDsOfNames(typeInfo_, rgszNames, cNames, rgDispId); } /* [local] */ HRESULT STDMETHODCALLTYPE Chapter::Invoke(/* [annotation][in] */ _In_ DISPID dispIdMember, /* [annotation][in] */ _In_ REFIID riid, /* [annotation][in] */ _In_ LCID lcid, /* [annotation][in] */ _In_ WORD wFlags, /* [annotation][out][in] */ _In_ DISPPARAMS *pDispParams, /* [annotation][out] */ _Out_opt_ VARIANT *pVarResult, /* [annotation][out] */ _Out_opt_ EXCEPINFO *pExcepInfo, /* [annotation][out] */ _Out_opt_ UINT *puArgErr) { if (FAILED(ensureTypeInfo())) { return E_FAIL; }
__RPC__in _IRDPSessionEvents * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo) { printf("Shadow_IRDPSessionEvents_GetTypeInfo\n"); return E_NOTIMPL; } static HRESULT STDMETHODCALLTYPE Shadow_IRDPSessionEvents_GetIDsOfNames( __RPC__in _IRDPSessionEvents * This, /* [in] */ __RPC__in REFIID riid, /* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames, /* [range][in] */ __RPC__in_range(0,16384) UINT cNames, /* [in] */ LCID lcid, /* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId) { printf("Shadow_IRDPSessionEvents_GetIDsOfNames\n"); return E_NOTIMPL; } static HRESULT STDMETHODCALLTYPE Shadow_IRDPSessionEvents_Invoke( _IRDPSessionEvents * This, /* [annotation][in] */ _In_ DISPID dispIdMember, /* [annotation][in] */ _In_ REFIID riid, /* [annotation][in] */ _In_ LCID lcid, /* [annotation][in] */ _In_ WORD wFlags,
{ if( _tcsicmp(pstrName, DUI_CTR_FLASH) == 0 ) return static_cast<CFlashUI*>(this); return CActiveXUI::GetInterface(pstrName); } HRESULT STDMETHODCALLTYPE CFlashUI::GetTypeInfoCount( __RPC__out UINT *pctinfo ) { return E_NOTIMPL; } HRESULT STDMETHODCALLTYPE CFlashUI::GetTypeInfo( UINT iTInfo, LCID lcid, __RPC__deref_out_opt ITypeInfo **ppTInfo ) { return E_NOTIMPL; } HRESULT STDMETHODCALLTYPE CFlashUI::GetIDsOfNames( __RPC__in REFIID riid, __RPC__in_ecount_full(cNames ) LPOLESTR *rgszNames, UINT cNames, LCID lcid, __RPC__out_ecount_full(cNames) DISPID *rgDispId ) { return E_NOTIMPL; } HRESULT STDMETHODCALLTYPE CFlashUI::Invoke( DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr ) { return S_OK; switch(dispIdMember) { case DISPID_FLASHEVENT_FLASHCALL: { if (pDispParams->cArgs != 1 || pDispParams->rgvarg[0].vt != VT_BSTR) return E_INVALIDARG; return this->FlashCall(pDispParams->rgvarg[0].bstrVal);