1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #ifndef __UIFLASH_H__
- #define __UIFLASH_H__
- #pragma once
- // \Utils\Flash11.tlb 为Flash11接口文件,部分方法在低版本不存在,使用需注意
- // #import "PROGID:ShockwaveFlash.ShockwaveFlash" \
- // raw_interfaces_only, /* Don't add raw_ to method names */ \
- // named_guids, /* Named guids and declspecs */ \
- // rename("IDispatchEx","IMyDispatchEx") /* fix conflicting with IDispatchEx ant dispex.h */
- // using namespace ShockwaveFlashObjects;
- #include "Utils/FlashEventHandler.h"
- #include "Utils/flash11.tlh"
- class CActiveXCtrl;
- namespace DuiLib
- {
- class UILIB_API CFlashUI
- : public CActiveXUI
- // , public IOleInPlaceSiteWindowless // 透明模式绘图,需要实现这个接口
- , public _IShockwaveFlashEvents
- , public ITranslateAccelerator
- {
- DECLARE_DUICONTROL(CFlashUI)
- public:
- CFlashUI(void);
- ~CFlashUI(void);
- void SetFlashEventHandler(CFlashEventHandler* pHandler);
- virtual bool DoCreateControl();
- IShockwaveFlash* m_pFlash;
- private:
- virtual LPCTSTR GetClass() const;
- virtual LPVOID GetInterface( LPCTSTR pstrName );
- virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount( __RPC__out UINT *pctinfo );
- virtual HRESULT STDMETHODCALLTYPE GetTypeInfo( UINT iTInfo, LCID lcid, __RPC__deref_out_opt ITypeInfo **ppTInfo );
- virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames( __RPC__in REFIID riid, __RPC__in_ecount_full(cNames ) LPOLESTR *rgszNames, UINT cNames, LCID lcid, __RPC__out_ecount_full(cNames) DISPID *rgDispId);
- virtual HRESULT STDMETHODCALLTYPE Invoke( DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr );
- virtual HRESULT STDMETHODCALLTYPE QueryInterface( REFIID riid, void **ppvObject );
- virtual ULONG STDMETHODCALLTYPE AddRef( void );
- virtual ULONG STDMETHODCALLTYPE Release( void );
- HRESULT OnReadyStateChange (long newState);
- HRESULT OnProgress(long percentDone );
- HRESULT FSCommand (_bstr_t command, _bstr_t args);
- HRESULT FlashCall (_bstr_t request );
- virtual void ReleaseControl();
- HRESULT RegisterEventHandler(BOOL inAdvise);
- // ITranslateAccelerator
- // Duilib消息分发给WebBrowser
- virtual LRESULT TranslateAccelerator( MSG *pMsg );
- private:
- LONG m_dwRef;
- DWORD m_dwCookie;
- CFlashEventHandler* m_pFlashEventHandler;
- };
- }
- #endif // __UIFLASH_H__
|