1 // Instance.h : Declaration of the CInstance
5 #include "resource.h" //
\83\81\83C
\83\93 \83V
\83\93\83{
\83\8b
8 #include "OverlappedWindow.h"
9 #include "commdialog.h"
11 /////////////////////////////////////////////////////////////////////////////
13 class ATL_NO_VTABLE CInstance :
14 public CComObjectRootEx<CComSingleThreadModel>,
15 public CComCoClass<CInstance, &CLSID_SeraphyScriptTools_Instance>,
16 public ISupportErrorInfoImpl<&IID_ISeraphyScriptTools_Instance>,
17 public CComControl<CInstance>,
18 public CStockPropImpl<CInstance, ISeraphyScriptTools_Instance, &IID_ISeraphyScriptTools_Instance, &LIBID_SERAPHYSCRIPTTOOLSLib>,
19 public IPersistStreamInitImpl<CInstance>,
20 public IOleControlImpl<CInstance>,
21 public IOleObjectImpl<CInstance>,
22 public IOleInPlaceActiveObjectImpl<CInstance>,
23 public IViewObjectExImpl<CInstance>,
24 public IOleInPlaceObjectWindowlessImpl<CInstance>,
25 public IConnectionPointContainerImpl<CInstance>,
26 public IPersistStorageImpl<CInstance>,
27 public ISpecifyPropertyPagesImpl<CInstance>,
28 public IQuickActivateImpl<CInstance>,
29 public IDataObjectImpl<CInstance>,
30 public IProvideClassInfo2Impl<&CLSID_SeraphyScriptTools_Instance, &DIID__ISeraphyScriptTools_InstanceEvents, &LIBID_SERAPHYSCRIPTTOOLSLib>,
31 public IPropertyNotifySinkCP<CInstance>
34 HRESULT FinalConstruct();
37 DECLARE_REGISTRY_RESOURCEID(IDR_INSTANCE)
39 DECLARE_PROTECT_FINAL_CONSTRUCT()
41 BEGIN_COM_MAP(CInstance)
42 COM_INTERFACE_ENTRY(ISeraphyScriptTools_Instance)
43 COM_INTERFACE_ENTRY(IDispatch)
44 COM_INTERFACE_ENTRY(IViewObjectEx)
45 COM_INTERFACE_ENTRY(IViewObject2)
46 COM_INTERFACE_ENTRY(IViewObject)
47 COM_INTERFACE_ENTRY(IOleInPlaceObjectWindowless)
48 COM_INTERFACE_ENTRY(IOleInPlaceObject)
49 COM_INTERFACE_ENTRY2(IOleWindow, IOleInPlaceObjectWindowless)
50 COM_INTERFACE_ENTRY(IOleInPlaceActiveObject)
51 COM_INTERFACE_ENTRY(IOleControl)
52 COM_INTERFACE_ENTRY(IOleObject)
53 COM_INTERFACE_ENTRY(IPersistStreamInit)
54 COM_INTERFACE_ENTRY2(IPersist, IPersistStreamInit)
55 COM_INTERFACE_ENTRY(ISupportErrorInfo)
56 COM_INTERFACE_ENTRY(IConnectionPointContainer)
57 COM_INTERFACE_ENTRY(ISpecifyPropertyPages)
58 COM_INTERFACE_ENTRY(IQuickActivate)
59 COM_INTERFACE_ENTRY(IPersistStorage)
60 COM_INTERFACE_ENTRY(IDataObject)
61 COM_INTERFACE_ENTRY(IProvideClassInfo)
62 COM_INTERFACE_ENTRY(IProvideClassInfo2)
65 BEGIN_PROP_MAP(CInstance)
66 PROP_DATA_ENTRY("_cx", m_sizeExtent.cx, VT_UI4)
67 PROP_DATA_ENTRY("_cy", m_sizeExtent.cy, VT_UI4)
68 PROP_ENTRY("Caption", DISPID_CAPTION, CLSID_NULL)
70 // PROP_ENTRY("Property Description", dispid, clsid)
71 // PROP_PAGE(CLSID_StockColorPage)
74 BEGIN_CONNECTION_POINT_MAP(CInstance)
75 CONNECTION_POINT_ENTRY(IID_IPropertyNotifySink)
76 END_CONNECTION_POINT_MAP()
78 BEGIN_MSG_MAP(CInstance)
79 CHAIN_MSG_MAP(CComControl<CInstance>)
80 DEFAULT_REFLECTION_HANDLER()
82 // Handler prototypes:
83 // LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
84 // LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
85 // LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
88 DECLARE_VIEW_STATUS(VIEWSTATUS_SOLIDBKGND | VIEWSTATUS_OPAQUE)
90 // ISeraphyScriptTools_Instance
92 STDMETHOD(get_Version)(/*[out, retval]*/ double *pVal);
93 STDMETHOD(get_MousePosY)(/*[out, retval]*/ long *pVal);
94 STDMETHOD(get_MousePosX)(/*[out, retval]*/ long *pVal);
95 STDMETHOD(get_Keyboard)(/*[in]*/VARIANT vk, /*[out, retval]*/ BOOL *pVal);
96 _bstr_t m_bstr_ProfilePath;
97 STDMETHOD(get_WaitCursor)(/*[out, retval]*/ short *pVal);
98 STDMETHOD(put_WaitCursor)(/*[in]*/ short newVal);
99 STDMETHOD(get_MainFrame)(/*[out, retval]*/ VARIANT *pVal);
100 STDMETHOD(WaitEvent)(/*[in,optional]*/VARIANT varTim,/*[out,retval]*/VARIANT* pvarUnk);
101 STDMETHOD(CreateFrame)(/*[out,retval]*/VARIANT* pvarUnk);
102 STDMETHOD(get_Dialog)(/*[out, retval]*/ VARIANT *pVal);
105 HRESULT OnDraw(ATL_DRAWINFO& di)
107 RECT& rc = *(RECT*)di.prcBounds;
108 Rectangle(di.hdcDraw, rc.left, rc.top, rc.right, rc.bottom);
110 SetTextAlign(di.hdcDraw, TA_CENTER | TA_BASELINE);
111 LPCTSTR pszText = _T("SeraphyScriptTools");
113 (rc.left + rc.right) / 2,
114 (rc.top + rc.bottom) / 2,
122 CComBSTR m_bstrCaption; // FIXME: protected
\82É
\82·
\82é
125 void PurgeUnusedWindows();
126 std::list<CComObject<COverlappedWindow>*> m_lstOverlappedWnd;
127 CComObject<CCommDialog>* m_pCommDlg; //FIXME: CComPtr
\82Ö
128 CComObject<COverlappedWindow>* m_pMainWindow; //FIXME: CComPtr
\82Ö