Example #1
0
// @pymethod <o TV_ITEM>|PyCTreeCtrl|GetItem|Retrieves the details of an items attributes.
PyObject *PyCTreeCtrl_GetItem( PyObject *self, PyObject *args )
{
	PyObject *obItem;
	UINT mask = TVIF_CHILDREN | TVIF_HANDLE | TVIF_IMAGE | TVIF_PARAM | TVIF_SELECTEDIMAGE | TVIF_STATE | TVIF_TEXT; 

	if (!PyArg_ParseTuple( args, "O|i:GetItem",
	                   &obItem, // @pyparm HTREEITEM|item||The item whose attributes are to be retrieved.
					   &mask)) // @pyparm int|mask|(all flags set)|The requested attributes.
		return NULL;

	CTreeCtrl *pList = GetTreeCtrl(self);
	if (!pList) return NULL;
	HTREEITEM item;
	if (!PyWinObject_AsHANDLE(obItem, (HANDLE *)&item))
		return NULL;
	TCHAR textBuf[256];
	TV_ITEM tvItem;
	tvItem.hItem = item;
	tvItem.pszText = textBuf;
	tvItem.cchTextMax = sizeof(textBuf)/sizeof(TCHAR);
	tvItem.mask = mask;
 	GUI_BGN_SAVE;
	BOOL ok = pList->GetItem( &tvItem);
 	GUI_END_SAVE;
	if (!ok)
		RETURN_ERR("GetItem failed");
	return PyWinObject_FromTV_ITEM(&tvItem);
}