1 // Control.h : CControl
\82Ì
\90é
\8c¾
6 #include "resource.h" //
\83\81\83C
\83\93 \83V
\83\93\83{
\83\8b
9 /////////////////////////////////////////////////////////////////////////////
11 class ATL_NO_VTABLE CControl :
12 public CComObjectRootEx<CComSingleThreadModel>,
13 // public CComCoClass<CControl, &CLSID_Control>,
14 public ISupportErrorInfo,
15 public IConnectionPointContainerImpl<CControl>,
16 public IDispatchImpl<IControl, &IID_IControl, &LIBID_SERAPHYSCRIPTTOOLSLib>
31 ZeroMemory(m_classname,MAX_PATH);
32 ZeroMemory(m_caption ,MAX_PATH);
33 //
\83\8a\83X
\83g
\83R
\83\93\83g
\83\8d\81[
\83\8b\97p
35 m_dLastSortColumn = -1; //
\8dÅ
\8cã
\82É
\83\
\81[
\83g
\82µ
\82½
\83J
\83\89\83\80
37 void SetParam(DWORD afterstyle,DWORD exstyle,LPCSTR classname,LPCSTR caption,DWORD style,int x,int y,int w,int h,int nID)
40 wsprintf(tmp,"OnCommand%d",nID);
47 lstrcpy(m_classname,classname);
48 lstrcpy(m_caption,caption);
50 m_bstrClassEvent = tmp;
53 m_afterstyle = afterstyle;
61 RedrawWindow(m_hWnd,NULL,NULL,RDW_ERASE|RDW_FRAME|RDW_INTERNALPAINT|RDW_INVALIDATE);
63 void SetFont(HFONT hFont)
66 ::SendMessage(m_hWnd,WM_SETFONT,(WPARAM)hFont,true);
69 void SetColor(DWORD color)
72 if(!lstrcmp(m_classname,WC_TREEVIEW)){
73 TreeView_SetBkColor(m_hWnd,COLORREF(color));
75 else if(!lstrcmp(m_classname,WC_LISTVIEW)){
76 ListView_SetBkColor(m_hWnd,COLORREF(color));
82 ATLTRACE("CControl::FinalRelease\r\n");
86 //DECLARE_REGISTRY_RESOURCEID(IDR_CONTROL)
88 DECLARE_PROTECT_FINAL_CONSTRUCT()
90 BEGIN_COM_MAP(CControl)
91 COM_INTERFACE_ENTRY(IControl)
92 COM_INTERFACE_ENTRY(IDispatch)
93 COM_INTERFACE_ENTRY(ISupportErrorInfo)
94 COM_INTERFACE_ENTRY(IConnectionPointContainer)
96 BEGIN_CONNECTION_POINT_MAP(CControl)
97 END_CONNECTION_POINT_MAP()
100 // ISupportsErrorInfo
101 STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
105 STDMETHOD(CreateChild)(/*[in]*/VARIANT text,/*[in]*/VARIANT varItem,/*[out,retval]*/VARIANT* pvarUnk);
106 void GetClassEvent(BSTR* pEventName);
107 STDMETHOD(SetClassEvent)(/*[in]*/BSTR name,/*[out,retval]*/VARIANT* pUnk);
108 STDMETHOD(get_ItemText)(/*[in]*/VARIANT idx, /*[out, retval]*/ BSTR *pVal);
109 STDMETHOD(put_ItemText)(/*[in]*/VARIANT idx, /*[in]*/ BSTR newVal);
110 STDMETHOD(DeleteSelectedItem)();
111 STDMETHOD(get_ItemCheckState)(/*[in]*/VARIANT idx, /*[out, retval]*/ BOOL *pVal);
112 STDMETHOD(put_ItemCheckState)(/*[in]*/VARIANT idx, /*[in]*/ BOOL newVal);
113 STDMETHOD(DeleteAllItems)();
114 STDMETHOD(get_ItemObject)(/*[in]*/VARIANT idx, /*[out, retval]*/ VARIANT *pVal);
115 STDMETHOD(get_TreeRoot)(/*[out, retval]*/ VARIANT *pVal);
116 STDMETHOD(get_SelectedCount)(/*[out, retval]*/ short *pVal);
117 STDMETHOD(get_ItemSelectState)(/*[in]*/VARIANT idx, /*[out, retval]*/ VARIANT *pVal);
118 STDMETHOD(put_ItemSelectState)(/*[in]*/VARIANT idx, /*[in]*/ VARIANT newVal);
119 STDMETHOD(get__NewEnum)(/*[out, retval]*/ IUnknown* *pVal);
120 STDMETHOD(get_CurrentSelectedItem)(/*[out, retval]*/ VARIANT *pVal);
121 STDMETHOD(put_CurrentSelectedItem)(/*[in]*/ VARIANT newVal);
122 STDMETHOD(GetCount)(/*[out,retval]*/VARIANT* pRet);
123 STDMETHOD(DeleteString)(/*[in]*/VARIANT idx,/*[out,retval]*/VARIANT* pRet);
124 STDMETHOD(GetColumnText)(/*[in]*/VARIANT idx,/*[in]*/VARIANT col,/*[out,retval]*/VARIANT* pText);
125 STDMETHOD(SetColumnText)(/*[in]*/VARIANT item,/*[in]*/VARIANT col,/*[in]*/VARIANT text);
126 STDMETHOD(AddString)(/*[in]*/VARIANT text,/*[out,retval]*/VARIANT* pRet);
127 STDMETHOD(get_HWND)(/*[out, retval]*/ long *pVal);
128 STDMETHOD(Refresh)();
129 STDMETHOD(get_ClassName)(/*[out, retval]*/ BSTR *pVal);
130 STDMETHOD(get_Exstyle)(/*[out, retval]*/ long *pVal);
131 STDMETHOD(put_Exstyle)(/*[in]*/ long newVal);
132 STDMETHOD(get_Style)(/*[out, retval]*/ long *pVal);
133 STDMETHOD(put_Style)(/*[in]*/ long newVal);
134 STDMETHOD(SetID)(/*[in]*/VARIANT varID,/*[out,retval]*/VARIANT* pvarUnk);
135 STDMETHOD(SetCheck)(/*[out,retval]*/VARIANT* pvarUnk);
136 STDMETHOD(SetPlacement)(/*[in]*/VARIANT x,/*[in]*/VARIANT y,/*[in,optional]*/VARIANT w,/*[in,optional]*/VARIANT h,/*[out,retval]*/VARIANT* pvarUnk);
137 STDMETHOD(get_PosY)(/*[out, retval]*/ short *pVal);
138 STDMETHOD(put_PosY)(/*[in]*/ short newVal);
139 STDMETHOD(get_PosX)(/*[out, retval]*/ short *pVal);
140 STDMETHOD(put_PosX)(/*[in]*/ short newVal);
141 STDMETHOD(get_Height)(/*[out, retval]*/ short *pVal);
142 STDMETHOD(put_Height)(/*[in]*/ short newVal);
143 STDMETHOD(get_Width)(/*[out, retval]*/ short *pVal);
144 STDMETHOD(put_Width)(/*[in]*/ short newVal);
145 STDMETHOD(get_CheckState)(/*[out, retval]*/ short *pVal);
146 STDMETHOD(put_CheckState)(/*[in]*/ short newVal);
147 STDMETHOD(get_Enable)(/*[out, retval]*/ BOOL *pVal);
148 STDMETHOD(put_Enable)(/*[in]*/ BOOL newVal);
149 STDMETHOD(get_Visibility)(/*[out, retval]*/ BOOL *pVal);
150 STDMETHOD(put_Visibility)(/*[in]*/ BOOL newVal);
151 STDMETHOD(get_ID)(/*[out, retval]*/ short *pVal);
152 STDMETHOD(put_ID)(/*[in]*/ short newVal);
153 STDMETHOD(get_Text)(/*[out, retval]*/ BSTR *pVal);
154 STDMETHOD(put_Text)(/*[in]*/ BSTR newVal);
156 void ListSort(int column);
157 BOOL Create(HWND hParam);
159 void GetThisInterface(VARIANT* pvarUnk);
163 // LRESULT (CALLBACK *subclassproc)(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam);
164 // static LRESULT CALLBACK WinProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam);
165 static int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
177 TCHAR m_caption[MAX_PATH];
178 TCHAR m_classname[MAX_PATH];
179 _bstr_t m_bstrClassEvent;
183 VARTYPE m_typCompare;
184 int m_dLastSortColumn;
186 LPSTR ConvertVariantToString(VARIANT text);
189 #endif //__CONTROL_H_