windows-nt/Source/XPSP1/NT/windows/richedit/lssrc/textenum.c
2020-09-26 16:20:57 +08:00

55 lines
1.4 KiB
C

#include "lsidefs.h"
#include "plsrun.h"
#include "pilsobj.h"
#include "txtils.h"
#include "txtobj.h"
#include "txtln.h"
// %%Function: EnumObjText
// %%Contact: victork
//
LSERR WINAPI EnumObjText(PDOBJ pdobj, PLSRUN plsrun, PCLSCHP plschp, LSCP cpFirst, LSDCP dcp,
LSTFLOW lstflow, BOOL fReverseOrder, BOOL fGeometryProvided,
const POINT* pptStart, PCHEIGHTS pheightsPres, long dupRun)
{
TXTOBJ* ptxtobj;
PLNOBJ plnobj;
PILSOBJ pilsobj;
long* pdup;
BOOL fCharWidthsProvided;
ptxtobj = (TXTOBJ*)pdobj;
plnobj = ptxtobj->plnobj;
pilsobj = plnobj->pilsobj;
Unreferenced(plschp);
if (ptxtobj->txtkind == txtkindTab)
{
return (*pilsobj->plscbk->pfnEnumTab)(pilsobj->pols, plsrun, cpFirst,
&plnobj->pwch[ptxtobj->iwchFirst],
ptxtobj->u.tab.wchTabLeader, lstflow,
fReverseOrder, fGeometryProvided,
pptStart, pheightsPres, dupRun);
}
if (ptxtobj->txtf & txtfGlyphBased)
{
fCharWidthsProvided = fFalse;
pdup = NULL;
}
else
{
fCharWidthsProvided = fTrue;
pdup = &plnobj->pdup[ptxtobj->iwchFirst];
}
return (*pilsobj->plscbk->pfnEnumText)(pilsobj->pols, plsrun, cpFirst, dcp,
&plnobj->pwch[ptxtobj->iwchFirst],
ptxtobj->iwchLim - ptxtobj->iwchFirst, lstflow,
fReverseOrder, fGeometryProvided,
pptStart, pheightsPres, dupRun,
fCharWidthsProvided, pdup);
}