220 lines
6.5 KiB
C
220 lines
6.5 KiB
C
|
#ifndef LSIMETH_DEFINED
|
||
|
#define LSIMETH_DEFINED
|
||
|
|
||
|
#include "lsdefs.h"
|
||
|
|
||
|
#include "plscbk.h"
|
||
|
#include "plsrun.h"
|
||
|
#include "pilsobj.h"
|
||
|
#include "plnobj.h"
|
||
|
#include "pdobj.h"
|
||
|
#include "pfmti.h"
|
||
|
#include "pbrko.h"
|
||
|
#include "pobjdim.h"
|
||
|
#include "pdispi.h"
|
||
|
#include "plsdocin.h"
|
||
|
#include "pposichn.h"
|
||
|
#include "plocchnk.h"
|
||
|
#include "plsfgi.h"
|
||
|
#include "pheights.h"
|
||
|
#include "plsqin.h"
|
||
|
#include "plsqout.h"
|
||
|
#include "plssubl.h"
|
||
|
#include "plschp.h"
|
||
|
#include "lstflow.h"
|
||
|
#include "lskjust.h"
|
||
|
#include "breakrec.h"
|
||
|
#include "brkcond.h"
|
||
|
#include "brkkind.h"
|
||
|
#include "fmtres.h"
|
||
|
#include "mwcls.h"
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
LSERR (WINAPI* pfnCreateILSObj)(POLS, PLSC, PCLSCBK, DWORD, PILSOBJ*);
|
||
|
/* CreateILSObj
|
||
|
* pols (IN):
|
||
|
* plsc (IN): LS context
|
||
|
* plscbk (IN): callbacks
|
||
|
* idObj (IN): id of the object
|
||
|
* &pilsobj (OUT): object ilsobj
|
||
|
*/
|
||
|
|
||
|
LSERR (WINAPI* pfnDestroyILSObj)(PILSOBJ);
|
||
|
/* DestroyILSObj
|
||
|
* pilsobj (IN): object ilsobj
|
||
|
*/
|
||
|
|
||
|
LSERR (WINAPI* pfnSetDoc)(PILSOBJ, PCLSDOCINF);
|
||
|
/* SetDoc
|
||
|
* pilsobj (IN): object ilsobj
|
||
|
* lsdocinf (IN): initialization data at document level
|
||
|
*/
|
||
|
|
||
|
LSERR (WINAPI* pfnCreateLNObj)(PCILSOBJ, PLNOBJ*);
|
||
|
/* CreateLNObj
|
||
|
* pilsobj (IN): object ilsobj
|
||
|
* &plnobj (OUT): object lnobj
|
||
|
*/
|
||
|
|
||
|
LSERR (WINAPI* pfnDestroyLNObj)(PLNOBJ);
|
||
|
/* DestroyLNObj
|
||
|
* plnobj (OUT): object lnobj
|
||
|
*/
|
||
|
|
||
|
LSERR (WINAPI* pfnFmt)(PLNOBJ, PCFMTIN, FMTRES*);
|
||
|
/* Fmt
|
||
|
* plnobj (IN): object lnobj
|
||
|
* pfmtin (IN): formatting input
|
||
|
* &fmtres (OUT): formatting result
|
||
|
*/
|
||
|
|
||
|
LSERR (WINAPI* pfnFmtResume)(PLNOBJ, const BREAKREC*, DWORD, PCFMTIN, FMTRES*);
|
||
|
/* FmtResume
|
||
|
* plnobj (IN): object lnobj
|
||
|
* rgBreakRecord (IN): array of break records
|
||
|
* nBreakRecord (IN): size of the break records array
|
||
|
* pfmtin (IN): formatting input
|
||
|
* &fmtres (OUT): formatting result
|
||
|
*/
|
||
|
|
||
|
LSERR (WINAPI* pfnGetModWidthPrecedingChar)(PDOBJ, PLSRUN, PLSRUN, PCHEIGHTS, WCHAR, MWCLS, long*);
|
||
|
/* GetModWidthPrecedingChar
|
||
|
* pdobj (IN): dobj
|
||
|
* plsrun (IN): plsrun of the object
|
||
|
* plsrunText (IN): plsrun of the preceding char
|
||
|
* heightsRef (IN): height info about character
|
||
|
* wchar (IN): preceding character
|
||
|
* mwcls (IN): ModWidth class of preceding character
|
||
|
* &durChange (OUT): amount by which width of the preceding char is to be changed
|
||
|
*/
|
||
|
|
||
|
LSERR (WINAPI* pfnGetModWidthFollowingChar)(PDOBJ, PLSRUN, PLSRUN, PCHEIGHTS, WCHAR, MWCLS, long*);
|
||
|
/* GetModWidthPrecedingChar
|
||
|
* pdobj (IN): dobj
|
||
|
* plsrun (IN): plsrun of the object
|
||
|
* plsrunText (IN): plsrun of the following char
|
||
|
* heightsRef (IN): height info about character
|
||
|
* wchar (IN): following character
|
||
|
* mwcls (IN): ModWidth class of the following character
|
||
|
* &durChange (OUT): amount by which width of the following char is to be changed
|
||
|
*/
|
||
|
|
||
|
LSERR (WINAPI* pfnTruncateChunk)(PCLOCCHNK, PPOSICHNK);
|
||
|
/* Truncate
|
||
|
* plocchnk (IN): locchnk to truncate
|
||
|
* posichnk (OUT): truncation point
|
||
|
*/
|
||
|
|
||
|
LSERR (WINAPI* pfnFindPrevBreakChunk)(PCLOCCHNK, PCPOSICHNK, BRKCOND, PBRKOUT);
|
||
|
/* FindPrevBreakChunk
|
||
|
* plocchnk (IN): locchnk to break
|
||
|
* pposichnk (IN): place to start looking for break
|
||
|
* brkcond (IN): recommmendation about the break after chunk
|
||
|
* &brkout (OUT): results of breaking
|
||
|
*/
|
||
|
|
||
|
LSERR (WINAPI* pfnFindNextBreakChunk)(PCLOCCHNK, PCPOSICHNK, BRKCOND, PBRKOUT);
|
||
|
/* FindNextBreakChunk
|
||
|
* plocchnk (IN): locchnk to break
|
||
|
* pposichnk (IN): place to start looking for break
|
||
|
* brkcond (IN): recommmendation about the break before chunk
|
||
|
* &brkout (OUT): results of breaking
|
||
|
*/
|
||
|
|
||
|
LSERR (WINAPI* pfnForceBreakChunk)(PCLOCCHNK, PCPOSICHNK, PBRKOUT);
|
||
|
/* ForceBreakChunk
|
||
|
* plocchnk (IN): locchnk to break
|
||
|
* pposichnk (IN): place to start looking for break
|
||
|
* &brkout (OUT): results of breaking
|
||
|
*/
|
||
|
|
||
|
LSERR (WINAPI* pfnSetBreak)(PDOBJ, BRKKIND, DWORD, BREAKREC*, DWORD*);
|
||
|
/* SetBreak
|
||
|
* pdobj (IN): dobj which is broken
|
||
|
* brkkind (IN): Previous/Next/Force/Imposed was chosen
|
||
|
* nBreakRecord (IN): size of array
|
||
|
* rgBreakRecord (OUT): array of break records
|
||
|
* nActualBreakRecord (OUT): actual number of used elements in array
|
||
|
*/
|
||
|
|
||
|
LSERR (WINAPI* pfnGetSpecialEffectsInside)(PDOBJ, UINT*);
|
||
|
/* GetSpecialEffects
|
||
|
* pdobj (IN): dobj
|
||
|
* &EffectsFlags (OUT): Special effects inside of this object
|
||
|
*/
|
||
|
|
||
|
LSERR (WINAPI* pfnFExpandWithPrecedingChar)(PDOBJ, PLSRUN, PLSRUN, WCHAR, MWCLS, BOOL*);
|
||
|
/* FExpandWithPrecedingChar
|
||
|
* pdobj (IN): dobj
|
||
|
* plsrun (IN): plsrun of the object
|
||
|
* plsrunText (IN): plsrun of the preceding char
|
||
|
* wchar (IN): preceding character
|
||
|
* mwcls (IN): ModWidth class of preceding character
|
||
|
* &fExpand (OUT): expand preceding character?
|
||
|
*/
|
||
|
|
||
|
LSERR (WINAPI* pfnFExpandWithFollowingChar)(PDOBJ, PLSRUN, PLSRUN, WCHAR, MWCLS, BOOL*);
|
||
|
/* FExpandWithFollowingChar
|
||
|
* pdobj (IN): dobj
|
||
|
* plsrun (IN): plsrun of the object
|
||
|
* plsrunText (IN): plsrun of the following char
|
||
|
* wchar (IN): following character
|
||
|
* mwcls (IN): ModWidth class of the following character
|
||
|
* &fExpand (OUT): expand object?
|
||
|
*/
|
||
|
LSERR (WINAPI* pfnCalcPresentation)(PDOBJ, long, LSKJUST, BOOL);
|
||
|
/* CalcPresentation
|
||
|
* pdobj (IN): dobj
|
||
|
* dup (IN): dup of dobj
|
||
|
* lskj (IN): current justification mode
|
||
|
* fLastVisibleOnLine (IN): this object is last visible object on line
|
||
|
*/
|
||
|
|
||
|
LSERR (WINAPI* pfnQueryPointPcp)(PDOBJ, PCPOINTUV, PCLSQIN, PLSQOUT);
|
||
|
/* QueryPointPcp
|
||
|
* pdobj (IN): dobj to query
|
||
|
* ppointuvQuery (IN): query point (uQuery,vQuery)
|
||
|
* plsqin (IN): query input
|
||
|
* plsqout (OUT): query output
|
||
|
*/
|
||
|
|
||
|
LSERR (WINAPI* pfnQueryCpPpoint)(PDOBJ, LSDCP, PCLSQIN, PLSQOUT);
|
||
|
/* QueryCpPpoint
|
||
|
* pdobj (IN): dobj to query
|
||
|
* dcp (IN): dcp for the query
|
||
|
* plsqin (IN): query input
|
||
|
* plsqout (OUT): query output
|
||
|
*/
|
||
|
|
||
|
LSERR (WINAPI* pfnEnum)(PDOBJ, PLSRUN, PCLSCHP, LSCP, LSDCP, LSTFLOW, BOOL,
|
||
|
BOOL, const POINT*, PCHEIGHTS, long);
|
||
|
/* Enum object
|
||
|
* pdobj (IN): dobj to enumerate
|
||
|
* plsrun (IN): from DNODE
|
||
|
* plschp (IN): from DNODE
|
||
|
* cpFirst (IN): from DNODE
|
||
|
* dcp (IN): from DNODE
|
||
|
* lstflow (IN): text flow
|
||
|
* fReverseOrder (IN): enumerate in reverse order
|
||
|
* fGeometryNeeded (IN):
|
||
|
* pptStart (IN): starting position, iff fGeometryNeeded
|
||
|
* pheightsPres(IN): from DNODE, relevant iff fGeometryNeeded
|
||
|
* dupRun(IN): from DNODE, relevant iff fGeometryNeeded
|
||
|
*/
|
||
|
|
||
|
LSERR (WINAPI* pfnDisplay)(PDOBJ, PCDISPIN);
|
||
|
/* Display
|
||
|
* pdobj (IN): dobj to display
|
||
|
* pdispin (IN): input display info
|
||
|
*/
|
||
|
|
||
|
LSERR (WINAPI* pfnDestroyDObj)(PDOBJ);
|
||
|
/* DestroyDObj
|
||
|
* pdobj (IN): dobj to destroy
|
||
|
*/
|
||
|
|
||
|
} LSIMETHODS;
|
||
|
|
||
|
#endif /* LSIMETH_DEFINED */
|