⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gpaxplugin.h

📁 一个用于智能手机的多媒体库适合S60 WinCE的跨平台开发库
💻 H
字号:
/* *			GPAC - Multimedia Framework C SDK * *			Authors: Y.XI, X. ZHAO, J. Le Feuvre *			Copyright (c) ENST 2006-200x *					All rights reserved * *  This file is part of GPAC / ActiveX control * *  GPAC is free software; you can redistribute it and/or modify *  it under the terms of the GNU Lesser General Public License as published by *  the Free Software Foundation; either version 2, or (at your option) *  any later version. *    *  GPAC is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU Lesser General Public License for more details. *    *  You should have received a copy of the GNU Lesser General Public *  License along with this library; see the file COPYING.  If not, write to *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  *		 */#ifndef __GPAXPLUGIN_H_#define __GPAXPLUGIN_H_#define MAXLEN_URL     300#include "resource.h"       // main symbols#include <atlctl.h>#include <SHLGUID.h>#include <gpac/terminal.h>#include <gpac/user.h>#include <gpac/config.h>#include <gpac/module.h>#include <gpac/options.h>Bool GPAX_EventProc(void *ptr, GF_Event *evt);/////////////////////////////////////////////////////////////////////////////// CGPAXPluginclass ATL_NO_VTABLE CGPAXPlugin :            public CComObjectRootEx<CComSingleThreadModel>,            public IDispatchImpl<IGPAX, &IID_IGPAX, &LIBID_GPAXLib>,            public CComControl<CGPAXPlugin>,            public CComCoClass<CGPAXPlugin, &CLSID_GPAX>,            public IOleControlImpl<CGPAXPlugin>,            public IOleObjectImpl<CGPAXPlugin>,            public IOleInPlaceActiveObjectImpl<CGPAXPlugin>,            public IViewObjectExImpl<CGPAXPlugin>,            public IOleInPlaceObjectWindowlessImpl<CGPAXPlugin>,            public IProvideClassInfo2Impl<&CLSID_GPAX, &DIID_IGPAXEvents, &LIBID_GPAXLib>,			public IPersistStreamInitImpl<CGPAXPlugin>,            public ISupportErrorInfo,            public IConnectionPointContainerImpl<CGPAXPlugin>,            public IPersistStorageImpl<CGPAXPlugin>,            public ISpecifyPropertyPagesImpl<CGPAXPlugin>,            public IQuickActivateImpl<CGPAXPlugin>,            public IDataObjectImpl<CGPAXPlugin>,            public IPropertyNotifySinkCP<CGPAXPlugin>,			public IPersistPropertyBagImpl<CGPAXPlugin>,			public IObjectSafetyImpl<CGPAXPlugin, INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA>{public:    CGPAXPlugin() {		m_term = NULL;		m_bAutoStart = TRUE;		m_bInitialDraw = TRUE;		m_bWindowOnly = TRUE;  //to declare that the control is a window control in order							   //to inherit the member variable m_hWnd which contains the window handler		m_bIsConnected = 0;		m_bUse3D = 0;		m_AR = GF_ASPECT_RATIO_KEEP;		m_url[0] = 0;#ifndef _WIN32_WCE		m_pBrowser = NULL;#endif		memset(&m_user, 0, sizeof(m_user));		m_dwCurrentSafety = INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA;    }	~CGPAXPlugin();	Bool EventProc(GF_Event *evt);    DECLARE_REGISTRY_RESOURCEID(IDR_GPAXPLUGIN)    DECLARE_PROTECT_FINAL_CONSTRUCT()    static LPCTSTR GetWindowClassName() { return TEXT("GPAC ActiveX"); }    BEGIN_COM_MAP(CGPAXPlugin)    COM_INTERFACE_ENTRY(IGPAX)    COM_INTERFACE_ENTRY(IDispatch)    COM_INTERFACE_ENTRY(IViewObjectEx)    COM_INTERFACE_ENTRY(IProvideClassInfo)    COM_INTERFACE_ENTRY(IOleControl)    COM_INTERFACE_ENTRY(IOleObject)    COM_INTERFACE_ENTRY_IMPL(IViewObjectEx)    COM_INTERFACE_ENTRY_IMPL_IID(IID_IViewObject2, IViewObjectEx)    COM_INTERFACE_ENTRY_IMPL_IID(IID_IViewObject, IViewObjectEx)    COM_INTERFACE_ENTRY_IMPL_IID(IID_IOleWindow, IOleInPlaceObjectWindowless)    COM_INTERFACE_ENTRY_IMPL_IID(IID_IOleInPlaceObject, IOleInPlaceObjectWindowless)    COM_INTERFACE_ENTRY_IMPL_IID(IID_IOleWindow, IOleInPlaceActiveObject)    	COM_INTERFACE_ENTRY_IMPL(IOleInPlaceActiveObject)    COM_INTERFACE_ENTRY_IMPL(IOleInPlaceObjectWindowless)		COM_INTERFACE_ENTRY(IObjectSafety)	COM_INTERFACE_ENTRY(IPersistPropertyBag)    COM_INTERFACE_ENTRY_IMPL_IID(IID_IPersist, IPersistPropertyBag)	/*	COM_INTERFACE_ENTRY(IViewObject)    COM_INTERFACE_ENTRY(IViewObject2)    COM_INTERFACE_ENTRY2(IOleWindow, IOleInPlaceObjectWindowless)    COM_INTERFACE_ENTRY(IOleInPlaceObject)	*/	COM_INTERFACE_ENTRY(IProvideClassInfo2)    COM_INTERFACE_ENTRY(IPersistStreamInit)    COM_INTERFACE_ENTRY2(IPersist, IPersistStreamInit)    COM_INTERFACE_ENTRY(ISupportErrorInfo)    COM_INTERFACE_ENTRY(IConnectionPointContainer)    COM_INTERFACE_ENTRY(ISpecifyPropertyPages)    COM_INTERFACE_ENTRY(IQuickActivate)    COM_INTERFACE_ENTRY(IPersistStorage)    COM_INTERFACE_ENTRY(IDataObject)    END_COM_MAP()    BEGIN_PROP_MAP(CGPAXPlugin)    END_PROP_MAP()    BEGIN_CONNECTION_POINT_MAP(CGPAXPlugin)    CONNECTION_POINT_ENTRY(IID_IPropertyNotifySink)    END_CONNECTION_POINT_MAP()    BEGIN_MSG_MAP(CGPAXPlugin)    CHAIN_MSG_MAP(CComControl<CGPAXPlugin>)    DEFAULT_REFLECTION_HANDLER()	MESSAGE_HANDLER(WM_CREATE, OnCreate)	MESSAGE_HANDLER(WM_DESTROY, OnDestroy)    END_MSG_MAP()    // Handler prototypes:    //  LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);    //  LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);    //  LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);    // ISupportsErrorInfo    STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid)    {        static const IID* arr[] =            {                &IID_IGPAX,            };        for (int i=0; i<sizeof(arr)/sizeof(arr[0]); i++)        {            if (::ATL::InlineIsEqualGUID(*arr[i], riid))                return S_OK;        }        return S_FALSE;    }    STDMETHODIMP GetInterfaceSafetyOptions(              REFIID riid,        DWORD *pdwSupportedOptions,        DWORD *pdwEnabledOptions    );    STDMETHODIMP SetInterfaceSafetyOptions(              REFIID riid,        DWORD dwOptionSetMask,        DWORD dwEnabledOptions    );    // IViewObjectEx    DECLARE_VIEW_STATUS(VIEWSTATUS_SOLIDBKGND | VIEWSTATUS_OPAQUE)    // IGPAXpublic:	//Interface methods	STDMETHOD(Stop)();	STDMETHOD(Pause)();	STDMETHOD(Play)();    STDMETHOD(Update)(BSTR mtype,BSTR updates);	//Interface properties    STDMETHODIMP get_src(BSTR *url);    STDMETHODIMP put_src(BSTR url);    STDMETHODIMP get_AutoStart(VARIANT_BOOL *as);    STDMETHODIMP put_AutoStart(VARIANT_BOOL as);	//Customed Window Message functions: OnCreate and OnDestroy are called when a window	//is created or destroyed. OnDraw is to establish inital connection.    HRESULT OnDraw(ATL_DRAWINFO& di);    LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);    LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);	//IPersistPropertyBag method: to handle persist property packed and transfered by MSIE	//in html doc, the ActiveX control is added by tags	//   <object CLSID=...>	//		<PARAM name="..." value="...">	//   </object>	//the interface IPersistPropertyBag enable MSIE and ActiveX Control to communicate these	//properties included in tags <PARAM>     STDMETHODIMP Load(LPPROPERTYBAG pPropBag, LPERRORLOG pErrorLog);    STDMETHODIMP Save(LPPROPERTYBAG, BOOL, BOOL);private:	Bool ReadParamString(LPPROPERTYBAG pPropBag, LPERRORLOG pErrorLog, WCHAR *name, char *buf, int bufsize);	void SetStatusText(char *msg);	void UpdateURL();	void UnloadTerm();	GF_Terminal *m_term;    GF_User m_user;	char m_url[MAXLEN_URL];#ifndef _WIN32_WCE	/*pointer to the parent browser if any*/	IWebBrowser2 *m_pBrowser;#endif	u32 m_width, m_height, m_AR;	Bool m_bIsConnected, m_bInitialDraw, m_bAutoStart, m_bUse3D, m_bLoop;};#endif //__GPAXPLUGIN_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -