Exemplo n.º 1
0
HRESULT CGenerateObjectPropertiesSelectDlg::GetObjectProperty (IObjectProperty **ppIObjProp)
{
// Beschreibungstext setzen
os_string strObjProp(g_cbNil), strObjPropFull(g_cbNil);

	if (S_OK == m_pObjProps -> GetSelectedObjProp(strObjProp, &strObjPropFull)) {
	// derzeit selektierte Objekteigenschaft näher beschreiben
	WObjectProps Props (GetObjectProps());
	WEnumObjProps Enum;
	WObjectProperty ObjProp;

		if (SUCCEEDED(Props -> EnumObjectProps(Enum.ppi())) &&
			SUCCEEDED(Enum -> FindByName(strObjPropFull.c_str(), ppIObjProp)))
		{
			return S_OK;
		}
	}
	return S_FALSE;
}
Exemplo n.º 2
0
bool CSelectObjectPropTree::InitControl (void)
{
	if (!Control::FInit()) return false;		// Initialisieren

ResourceFile RF (g_pDLLName);

	m_ilProps.CreateList (ResID(IDB_OBJPROPTYPES, &RF), 16, 0, RGB(255, 0, 255));
	m_Items.erase();

// ImageList zuweisen
CImageList *pIL = SetImageList (&m_ilProps, TVSIL_NORMAL);
	
	if (pIL) delete pIL;
	m_Items.erase();

// Objekteigenschaften in Gruppen sortiert im Baum einhängen
CEierUhr Wait (GetParent());
HRESULT hr = m_Props -> OnNewReferenceObject (0L);	// alle ObjProps installieren

	if (FAILED(hr)) return false;
	DEX_SetMustInitOPFs(FALSE);

WEnumObjProps Enum;

	hr = m_Props -> EnumObjectProps (Enum.ppi());
	if (FAILED(hr)) return hr;

// Objekteigenschaften durchgehen
WObjectProperty Prop;
char cbPropInfo[_MAX_PATH];

	for (Enum -> Reset(); 
	     S_OK == Enum -> Next (1, Prop.ppu(), NULL); /**/)
	{
	// vollständigen Namen geben lassen
	DWORD dwFlags = 0L;

		hr = Prop -> GetPropInfo (cbPropInfo, sizeof(cbPropInfo), &dwFlags);
		if (FAILED(hr) || dwFlags & PROPCAPS_INTERACTIVE)
			continue;		// keine interaktive ObjProps anzeigen

	// ParentItem der Property aus dem Baum besorgen
	CPropertyName PropName (cbPropInfo);
	HTREEITEM hParent = CalcParentItem (PropName.GetGroup());
	string rstr = PropName.GetSubGroup();
	HTREEITEM hNewItem = NULL;

		if (0 != rstr.length()) {
		HTREEITEM hSubGroup = CalcSubGroupItem (hParent, rstr.c_str());

			if (NULL != hSubGroup)
				hNewItem = InsertItem (PropName.GetName().c_str(), hSubGroup);
			else 
				hNewItem = InsertItem (PropName.GetName().c_str(), hParent);
		} else 
			hNewItem = InsertItem (PropName.GetName().c_str(), hParent);

	int iIndex = GetImageIndex (dwFlags);

		SetItemImage (hNewItem, iIndex, iIndex);
	}
	return true;
}