// UltraVncAxObj.h : Declaration of the CUltraVncAxObj #ifndef __ULTRAVNCAXOBJ_H_ #define __ULTRAVNCAXOBJ_H_ #include "resource.h" // main symbols #include #include "UltraVncAxCP.h" ///////////////////////////////////////////////////////////////////////////// #include "Helpers.h" #include "UltraVncAxGlobalConstructor.h" ///////////////////////////////////////////////////////////////////////////// // CUltraVncAxObj class ATL_NO_VTABLE CUltraVncAxObj : public CComObjectRootEx, public IDispatchImpl, public CComControl, public IPersistStreamInitImpl, public IOleControlImpl, public IOleObjectImpl, public IOleInPlaceActiveObjectImpl, public IViewObjectExImpl, public IOleInPlaceObjectWindowlessImpl, public IConnectionPointContainerImpl, public ISupportErrorInfo, public IPersistStorageImpl, public ISpecifyPropertyPagesImpl, public IQuickActivateImpl, public IDataObjectImpl, public IProvideClassInfo2Impl<&CLSID_UltraVncAxObj, &DIID__IUltraVncAxObjEvents, &LIBID_ULTRAVNCAXLib>, public IPropertyNotifySinkCP, public CComCoClass, public CProxy_IUltraVncAxObjEvents< CUltraVncAxObj > { public: CUltraVncAxObj(); virtual ~ CUltraVncAxObj(); DECLARE_REGISTRY_RESOURCEID(IDR_ULTRAVNCAXOBJ) DECLARE_PROTECT_FINAL_CONSTRUCT() BEGIN_COM_MAP(CUltraVncAxObj) COM_INTERFACE_ENTRY(IUltraVncAxObj) COM_INTERFACE_ENTRY(IDispatch) COM_INTERFACE_ENTRY(IViewObjectEx) COM_INTERFACE_ENTRY(IViewObject2) COM_INTERFACE_ENTRY(IViewObject) COM_INTERFACE_ENTRY(IOleInPlaceObjectWindowless) COM_INTERFACE_ENTRY(IOleInPlaceObject) COM_INTERFACE_ENTRY2(IOleWindow, IOleInPlaceObjectWindowless) COM_INTERFACE_ENTRY(IOleInPlaceActiveObject) COM_INTERFACE_ENTRY(IOleControl) COM_INTERFACE_ENTRY(IOleObject) COM_INTERFACE_ENTRY(IPersistStreamInit) COM_INTERFACE_ENTRY2(IPersist, IPersistStreamInit) COM_INTERFACE_ENTRY(IConnectionPointContainer) COM_INTERFACE_ENTRY(ISupportErrorInfo) COM_INTERFACE_ENTRY(ISpecifyPropertyPages) COM_INTERFACE_ENTRY(IQuickActivate) COM_INTERFACE_ENTRY(IPersistStorage) COM_INTERFACE_ENTRY(IDataObject) COM_INTERFACE_ENTRY(IProvideClassInfo) COM_INTERFACE_ENTRY(IProvideClassInfo2) COM_INTERFACE_ENTRY_IMPL(IConnectionPointContainer) END_COM_MAP() BEGIN_PROP_MAP(CUltraVncAxObj) PROP_DATA_ENTRY("_cx", m_sizeExtent.cx, VT_UI4) PROP_DATA_ENTRY("_cy", m_sizeExtent.cy, VT_UI4) // Example entries // PROP_ENTRY("Property Description", dispid, clsid) // PROP_PAGE(CLSID_StockColorPage) END_PROP_MAP() BEGIN_CONNECTION_POINT_MAP(CUltraVncAxObj) CONNECTION_POINT_ENTRY(IID_IPropertyNotifySink) CONNECTION_POINT_ENTRY(DIID__IUltraVncAxObjEvents) END_CONNECTION_POINT_MAP() BEGIN_MSG_MAP(CUltraVncAxObj) CHAIN_MSG_MAP(CComControl) DEFAULT_REFLECTION_HANDLER() MESSAGE_HANDLER( WM_DESTROY, OnDestroy ) MESSAGE_HANDLER( WM_KEYDOWN, OnRelayMessageHandler ) MESSAGE_HANDLER( WM_KEYUP, OnRelayMessageHandler ) MESSAGE_HANDLER( WM_SYSKEYDOWN, OnRelayMessageHandler ) MESSAGE_HANDLER( WM_SYSKEYUP, OnRelayMessageHandler ) MESSAGE_HANDLER( WM_PARENTNOTIFY, OnParentNotify ) MESSAGE_HANDLER( WM_KILLFOCUS, OnRelayMessageHandler ) MESSAGE_HANDLER( WM_SIZE, OnSize ) 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_IUltraVncAxObj, }; for (int i=0; i