1 // TreeItem.cpp : CTreeItem
\82Ì
\83C
\83\93\83v
\83\8a\83\81\83\93\83e
\81[
\83V
\83\87\83\93
3 #include "SeraphyScriptTools.h"
10 /////////////////////////////////////////////////////////////////////////////
13 STDMETHODIMP CTreeItem::InterfaceSupportsErrorInfo(REFIID riid)
15 static const IID* arr[] =
19 for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++)
21 if (IsEqualGUID(*arr[i],riid))
27 BOOL CTreeItem::DeleteTreeItemWithData(HWND hWnd,HTREEITEM hItem)
29 HTREEITEM hRoot = hItem;
36 HTREEITEM hChild = TreeView_GetChild(hWnd,hItem);
38 //
\8eq
\83O
\83\8b\81[
\83v
\82ð
\8c\9f\8d¸
\82·
\82é
\82æ
\82¤
\82É
\83X
\83^
\83b
\83N
\82·
\82é
39 lst.push_back(hChild);
41 //
\82±
\82Ì
\83A
\83C
\83e
\83\80\82É
\8aÖ
\98A
\82Ã
\82¯
\82ç
\82ê
\82½
\83I
\83u
\83W
\83F
\83N
\83g
\82ð
\89ð
\95ú
\82·
\82é
43 itm.mask = TVIF_PARAM;
45 if(TreeView_GetItem(hWnd,&itm) && itm.lParam){
46 IUnknown* pUnk = (IUnknown*)itm.lParam;
49 TreeView_SetItem(hWnd,&itm);
51 //
\82Â
\82¬
\82Ì
\83A
\83C
\83e
\83\80\82ð
\92T
\82·
53 //
\8aJ
\8en
\88Ê
\92u
\82Ì
\8cZ
\92í
\82Í
\92T
\82µ
\82Ä
\82Í
\82È
\82ç
\82È
\82¢
57 hItem = TreeView_GetNextSibling(hWnd,hItem);
61 TreeView_DeleteItem(hWnd,hRoot);
65 void CTreeItem::CreateTreeItem(HWND hWnd, HTREEITEM hParent, LPCSTR text, IUnknown **punkVal)
67 //
\83A
\83C
\83e
\83\80\82ª
\95Û
\97L
\82·
\82é
\98A
\91z
\94z
\97ñ
\82ð
\90¶
\90¬
\82·
\82é
68 IUnknown* pUnk = NULL;
69 CComObject<CObjectMap>* pMap = NULL;
70 if(pMap->CreateInstance(&pMap) == S_OK){
71 pMap->QueryInterface(IID_IUnknown,(void**)&pUnk);
73 //
\91}
\93ü
\82·
\82é
\83A
\83C
\83e
\83\80\82Ì
\92è
\8b`
74 TVINSERTSTRUCT is = { 0 };
76 is.hInsertAfter = TVI_LAST;
77 is.item.mask = TVIF_TEXT | TVIF_PARAM;
78 is.item.pszText = (LPSTR)text;
79 is.item.cchTextMax = lstrlen(text);
80 is.item.lParam = (LPARAM)pUnk;
82 HTREEITEM hNewItem = TreeView_InsertItem(hWnd,&is);
84 //
\83A
\83C
\83e
\83\80\82Ö
\82Ì
\83I
\83u
\83W
\83F
\83N
\83g
\82ð
\8dì
\90¬
\82·
\82é
85 CComObject<CTreeItem>* pItem = NULL;
86 if(pItem->CreateInstance(&pItem) == S_OK){
87 pItem->SetParam(hWnd,hNewItem);
88 pItem->QueryInterface(IID_IUnknown,(void**)punkVal);
93 STDMETHODIMP CTreeItem::IsValid(BOOL *pResult)
95 *pResult = (m_hItem != NULL)?VB_TRUE:VB_FALSE;