/*---------------------------------------------------------------------------------------------- Check to see if the edit box has valid data. if so return true. If not then put up a message to the user, then return false. ----------------------------------------------------------------------------------------------*/ bool CleDeFeString::BeginEdit(HWND hwnd, Rect & rc, int dxpCursor, bool fTopCursor) { SuperClass::BeginEdit(hwnd, rc, dxpCursor, fTopCursor); CleMainWnd * pcmw = dynamic_cast<CleMainWnd *>(m_qadsc->MainWindow()); Assert(pcmw); PossListInfoPtr qpli = pcmw->GetPossListInfoPtr(); int ipss = qpli->GetIndexFromId(m_hvoObj); PossItemInfo * ppii = qpli->GetPssFromIndex(ipss); AssertPtr(ppii); // Save the primary string for comparison. AfLpInfo * plpi = pcmw->GetLpInfo(); AssertPtr(plpi); CustViewDaPtr qcvd = pcmw->MainDa(); AssertPtr(qcvd); CheckHr(qcvd->get_MultiStringAlt(m_hvoObj, m_flid, plpi->ActualWs(qpli->GetWs()), &m_qtssOld)); switch(m_flid) { case kflidCmPossibility_Name: { StrUni stu; ppii->GetName(stu, kpntName); StrUni stuNewItem(kstidNewItem); if (stu.Left(stuNewItem.Length()) == stuNewItem) m_qrootb->MakeSimpleSel(true, true, true, true, NULL); break; } case kflidCmPossibility_Abbreviation: { StrUni stu; ppii->GetName(stu, kpntAbbreviation); StrUni stuNew(kstidNew); if (stu.Left(stuNew.Length()) == stuNew) m_qrootb->MakeSimpleSel(true, true, true, true, NULL); break; } } return true; }
/*---------------------------------------------------------------------------------------------- Return the text string that gets shown to the user when this object needs to be displayed. This is the method for displaying the name of a single reference. This view shows the name for an RnGenericRec consisting of the type of record, hyphen, title, hyphen, creation date. "Subevent - Fishing for pirana - 3/22/2001" @param pguid Pointer to a database object's assigned GUID. @param pptss Address of a pointer to an ITsString COM object used for returning the text string. @return S_OK, E_POINTER, or E_FAIL. ----------------------------------------------------------------------------------------------*/ STDMETHODIMP CleRecVc::GetStrForGuid(BSTR bstrGuid, ITsString ** pptss) { Assert(false); // rework BEGIN_COM_METHOD; ChkComBstrArg(bstrGuid); ChkComOutPtr(pptss); if (BstrLen(bstrGuid) != 8) ReturnHr(E_INVALIDARG); CleMainWnd * pcmw = dynamic_cast<CleMainWnd *>(AfApp::Papp()->GetCurMainWnd()); AssertPtr(pcmw); CleLpInfo * plpi = dynamic_cast<CleLpInfo *>(pcmw->GetLpInfo()); AssertPtr(plpi); HVO hvo = plpi->GetDbInfo()->GetIdFromGuid((GUID *)bstrGuid); CustViewDaPtr qcvd; plpi->GetDataAccess(&qcvd); AssertPtr(qcvd); int clid; HVO hvoOwn; int64 ntim; ITsStringPtr qtssTitle; CheckHr(qcvd->get_IntProp(hvo, kflidCmObject_Class, &clid)); CheckHr(qcvd->get_ObjectProp(hvo, kflidCmObject_Owner, &hvoOwn)); // REVIEW KenZ(RandyR) Whey are DN flids in this app? CheckHr(qcvd->get_TimeProp(hvo, kflidRnGenericRec_DateCreated, &ntim)); CheckHr(qcvd->get_StringProp(hvo, kflidRnGenericRec_Title, &qtssTitle)); int stid; // REVIEW KenZ(RandyR) Whey are DN flids in this app? if (clid == kclidRnEvent) { if (pcmw->GetRootObj() == hvoOwn) stid = kstidEvent; else stid = kstidSubevent; } else if (clid == kclidRnAnalysis) { if (pcmw->GetRootObj() == hvoOwn) stid = kstidAnalysis; else stid = kstidSubanalysis; } StrUni stu(stid); StrUni stuSep(kstidSpHyphenSp); ITsStrFactoryPtr qtsf; ITsIncStrBldrPtr qtisb; qtsf.CreateInstance(CLSID_TsStrFactory); CheckHr(qtsf->GetIncBldr(&qtisb)); CheckHr(qtisb->Append(stu.Bstr())); CheckHr(qtisb->Append(stuSep.Bstr())); CheckHr(qtisb->AppendTsString(qtssTitle)); // The title. CheckHr(qtisb->Append(stuSep.Bstr())); // Leave the date blank if a date doesn't exist. if (ntim) { // Convert the date to a system date. SilTime tim = ntim; SYSTEMTIME stim; stim.wYear = (unsigned short) tim.Year(); stim.wMonth = (unsigned short) tim.Month(); stim.wDay = (unsigned short) tim.Date(); // Then format it to a time based on the current user locale. achar rgchDate[50]; // Tuesday, August 15, 2000 mardi 15 août 2000 ::GetDateFormat(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &stim, NULL, rgchDate, 50); stu = rgchDate; CheckHr(qtisb->Append(stu.Bstr())); } CheckHr(qtisb->GetString(pptss)); return S_OK; END_COM_METHOD(g_fact2, IID_IVwViewConstructor) }