#ifndef LSCRSUBL_DEFINED #define LSCRSUBL_DEFINED /* Line services formatter fetch/dispatcher interface (to LsCreateLine()) */ #include "lsdefs.h" #include "lsfrun.h" #include "lsesc.h" #include "plssubl.h" #include "plsdnode.h" #include "fmtres.h" #include "objdim.h" #include "lstflow.h" #include "lskjust.h" #include "breakrec.h" #include "brkkind.h" #include "brkpos.h" LSERR WINAPI LsCreateSubline( PLSC, /* IN: LS context */ LSCP, /* IN: cpFirst */ long, /* IN: urColumnMax */ LSTFLOW, /* IN: text flow */ BOOL); /* IN: fContiguous */ LSERR WINAPI LsFetchAppendToCurrentSubline( PLSC, /* IN: LS context */ LSDCP, /* IN:Increase cp before fetching */ const LSESC*, /* IN: escape characters */ DWORD, /* IN: # of escape characters */ BOOL*, /* OUT: Successful?---if not, finish subline, destroy it and start anew */ FMTRES*, /* OUT: result of last formatter */ LSCP*, /* OUT: cpLim */ PLSDNODE*, /* OUT: First DNODE created */ PLSDNODE*); /* OUT: Last DNODE created */ LSERR WINAPI LsFetchAppendToCurrentSublineResume( PLSC, /* IN: LS context */ const BREAKREC*,/* IN: array of break records */ DWORD, /* IN: number of records in array */ LSDCP, /* IN:Increase cp before fetching */ const LSESC*, /* IN: escape characters */ DWORD, /* IN: # of escape characters */ BOOL*, /* OUT: Successful?---if not, finish subline, destroy it and start anew */ FMTRES*, /* OUT: result of last formatter */ LSCP*, /* OUT: cpLim */ PLSDNODE*, /* OUT: First DNODE created */ PLSDNODE*); /* OUT: Last DNODE created */ LSERR WINAPI LsAppendRunToCurrentSubline( /* Simple runs only */ PLSC, /* IN: LS context */ const LSFRUN*, /* IN: given run */ BOOL*, /* OUT: Successful?---if not, finish subline, destroy it and start anew */ FMTRES*, /* OUT: result of last formatter */ LSCP*, /* OUT: cpLim */ PLSDNODE*); /* OUT: DNODE created */ LSERR WINAPI LsResetRMInCurrentSubline( PLSC, /* IN: LS context */ long); /* IN: urColumnMax */ LSERR WINAPI LsFinishCurrentSubline( PLSC, /* IN: LS context */ PLSSUBL*); /* OUT: subline context */ LSERR WINAPI LsTruncateSubline( PLSSUBL, /* IN: subline context */ long, /* IN: urColumnMax */ LSCP*); /* OUT: cpTruncate */ LSERR WINAPI LsFindPrevBreakSubline( PLSSUBL, /* IN: subline context */ BOOL, /* IN: fFirstSubline */ LSCP, /* IN: truncation cp */ long, /* IN: urColumnMax */ BOOL*, /* OUT: fSuccessful? */ LSCP*, /* OUT: cpBreak */ POBJDIM, /* OUT: objdimSub up to break */ BRKPOS*); /* OUT: Before/Inside/After */ LSERR WINAPI LsFindNextBreakSubline( PLSSUBL, /* IN: subline context */ BOOL, /* IN: fFirstSubline */ LSCP, /* IN: truncation cp */ long, /* IN: urColumnMax */ BOOL*, /* OUT: fSuccessful? */ LSCP*, /* OUT: cpBreak */ POBJDIM, /* OUT: objdimSub up to break */ BRKPOS*); /* OUT: Before/Inside/After */ LSERR WINAPI LsForceBreakSubline( PLSSUBL, /* IN: subline context */ BOOL, /* IN: fFirstSubline */ LSCP, /* IN: truncation cp */ long, /* IN: urColumnMax */ LSCP*, /* OUT: cpBreak */ POBJDIM, /* OUT: objdimSub up to break */ BRKPOS*); /* OUT: Before/Inside/After */ LSERR WINAPI LsSetBreakSubline( PLSSUBL, /* IN: subline context */ BRKKIND, /* IN: Prev/Next/Force/Imposed */ DWORD, /* IN: size of array */ BREAKREC*, /* OUT: array of break records */ DWORD*); /* OUT: number of used elements of the array*/ LSERR WINAPI LsDestroySubline(PLSSUBL); LSERR WINAPI LsMatchPresSubline( PLSSUBL); /* IN: subline context */ LSERR WINAPI LsExpandSubline( PLSSUBL, /* IN: subline context */ LSKJUST, /* IN: justification type */ long); /* IN: dup */ LSERR WINAPI LsCompressSubline( PLSSUBL, /* IN: subline context */ LSKJUST, /* IN: justification type */ long); /* IN: dup */ LSERR WINAPI LsSqueezeSubline( PLSSUBL, /* IN: subline context */ long, /* IN: durTarget */ BOOL*, /* OUT: fSuccessful? */ long*); /* OUT: if nof successful, extra dur */ LSERR WINAPI LsGetSpecialEffectsSubline( PLSSUBL, /* IN: subline context */ UINT*); /* OUT: special effects */ #endif /* !LSCRSUBL_DEFINED */