⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 editods.h

📁 IBM Lotus C++ API 7.0a for IBM Lotus Notes/Domino Directory Release --------- ------------------
💻 H
📖 第 1 页 / 共 5 页
字号:

#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
#pragma datamodel(P128)
#endif

/*********************************************************************/
/*                                                                   */
/* Licensed Materials - Property of IBM                              */
/*                                                                   */
/* L-GHUS-5VMPGW, L-GHUS-5S3PEE                                      */
/* (C) Copyright IBM Corp. 1989, 2005  All Rights Reserved           */
/*                                                                   */
/* US Government Users Restricted Rights - Use, duplication or       */
/* disclosure restricted by GSA ADP Schedule Contract with           */
/* IBM Corp.                                                         */
/*                                                                   */
/*********************************************************************/



/*	Notes Rich Text On-Disk Structure Definitions -
	Record format used in the NSF data type TYPE_COMPOSITE. */



#ifndef EDIT_ODS_DEFS
#define EDIT_ODS_DEFS

#ifndef ODS_DEFS
#include "ods.h"
#endif
	
#ifndef NSF_DATA_DEFS
#include "nsfdata.h"					/* for NOTELINK */
#endif

#ifndef FONTID_DEFS
#include "fontid.h"						/* for FONTID and MAXFACESIZE */
#endif

#ifndef MISC_DEFS
#include "misc.h"						/* for NFMT, TFMT, and NCURFMT */
#endif

#ifndef COLORODS_DEFS
#include "colorods.h"					/* COLOR_VALUE */
#endif


/*	Paragraph Record - Defines the start of a new paragraph */
	
typedef struct {
	BSIG Header;
} CDPARAGRAPH;

/*	Paragraph Attribute Block Definition Record */

#define MAXTABS 20				/* maximum number of stops in tables */
#define MAX_STYLE_NAME 35
#define MAX_STYLE_USERNAME 128

typedef struct {
	WSIG Header;
	WORD PABID;					/* ID of this PAB */
	WORD JustifyMode;			/* paragraph justification type */
	WORD LineSpacing;			/* (2 * (Line Spacing - 1)) (0:1,1:1.5,2:2,etc) */
	WORD ParagraphSpacingBefore; /* no. of LineSpacing units above paragraph */
	WORD ParagraphSpacingAfter;	/* no. of LineSpacing units below paragraph */
	WORD LeftMargin;			/* leftmost margin, twips rel to abs left */
								/* (16 bits = about 44") */
	WORD RightMargin;			/* rightmost margin, twips rel to abs right */
								/* (16 bits = about 44") */
								/* Special value "0" means right margin */
								/* will be placed 1" from right edge of */
								/* paper, regardless of paper size. */
	WORD FirstLineLeftMargin;	/* leftmost margin on first line */
								/* (16 bits = about 44") */
	WORD Tabs;					/* number of tab stops in table */
	SWORD Tab[MAXTABS];			/* table of tab stop positions, negative
								   value means decimal tab */
								/* (15 bits = about 22") */
	WORD Flags;					/* paragraph attribute flags */
	DWORD TabTypes;				/* 2 bits per tab */
	WORD Flags2;				/* extra paragraph attribute flags */

} CDPABDEFINITION;


/*	New PAB record for V4 -hide when formula.	*/

typedef struct
	{
	WSIG	Header;
	WORD	PABID;
	BYTE	Reserverd [8];
	} CDPABHIDE;
	/* Follows is the actual formula.		*/

/*	PAB Reference Record -

	This record is output in two situations:  First, at the start of every
	item of type Composite.  Second, at the start of every paragraph.  If,
	when reading this record during a note READ operation, the paragraph
	in question has NO runs in it, this defines the PAB to use for the
	paragraph.  If the paragraph has runs already in it, ignore this record. */
	
typedef struct {
	BSIG Header;
	WORD PABID;					/* ID number of the PAB being referenced */
} CDPABREFERENCE;


/*	This record is similar to a pab reference record but applies
	only to the pab's hide when formula which is new for V4
	so we make a new type that v3 can safely ignore.
*/

typedef struct 
{
	BSIG Header;
	WORD SourcePABID;				/* ID number of the source PAB 
										containing the formula.	*/
	WORD DestPABID;					/*	ID number of the dest PAB */
} CDPABFORMULAREF;


/*	This DWORD, ExtendPabFlags, extends the PAB structure.   Use the ExtendedPab flags
	to know what to read next */

#define EXTENDEDPABFLAGS3	0x00000001L	/* If True then need make another read for Flags3 */

/* 	This DWORD extends the flags and flags 2 in the CDPABDEFINITION 
	record
*/

#define PABFLAG3_HIDE_EE		0x00000001L	/* True, if Hide when embedded */
#define PABFLAG3_HIDE_MOBILE 	0x00000002L /* True, if hidden from mobile clients */
#define PABFLAG3_LAYER_USES_DRM 0x00000004L /* True if boxes in a layer have set PABFLAG_DISPLAY_RM on pabs */


typedef struct
{
	WSIG Header;					/*	Header Jive					*/
	WORD Datalength;
	DWORD Reserved;
	/* Actual anchor text follows.		*/
} CDANCHOR;


/*	Style Name Record */

#define STYLE_FLAG_FONTID		0x00000001L	/* A FONTID follows the CDSTYLENAME structure.
												The font is included in the style. */
#define STYLE_FLAG_INCYCLE		0x00000002L	/* This style is included in the Cycle Key [F11].
												The style is available when you press F11
												to cyle through the named styles. */
#define STYLE_FLAG_PERMANENT	0x00000004L	/* A user name follows the CDSTYLENAME structure.
												The style is available for all documents. */
typedef struct
	{
	BSIG Header;
	DWORD Flags;				/* Style flags */
	WORD PABID;					/* ID number of the PAB being named */
	char StyleName[MAX_STYLE_NAME+1];	/* The style name. */
	/*	If STYLE_FLAG_FONTID, a FONTID follows this structure. */
	/*	If STYLE_FLAG_PERMANENT, a user name follows. */
	} CDSTYLENAME;


/*  Pre Table Begin Record -

	This record was put in so that we can give table data needed up front
	for Domino in a record that will be ignored in pre 5.0 versions. 5.0
	will take advantage of this record to expand the tablebegin record
	but will ignore some of the record which is filled in just for Domino */

	typedef struct
	{
	WSIG	Header;
#define	CDPRETABLE_AUTO_CELL_WIDTH		0x00000001	/* True if automatic cell width calculation */
#define	CDPRETABLE_DONTWRAP				0x00000002
#define CDPRETABLE_DROPSHADOW			0x00000004
#define CDPRETABLE_FIELDDRIVEN			0x00000008
#define CDPRETABLE_V4SPACING			0x00000010
#define CDPRETABLE_USEBORDERCOLOR		0x00000020
#define CDPRETABLE_WIDTHSAMEASWINDOW	0x00000040  /* True if the table width equal to window width */
#define CDPRETABLE_SHOWTABS				0x00000080  /* True if field driven table should also show tabs */
#define CDPRETABLE_SHOWTABSONLEFT		0x00000100  
#define CDPRETABLE_SHOWTABSONBOTTOM		0x00000200  
#define CDPRETABLE_SHOWTABSONRIGHT		0x00000400  
	DWORD	Flags;
	BYTE	Rows;
	BYTE	Columns;
	DWORD	ColumnSizingBits1;
	DWORD	ColumnSizingBits2;
#define CDTABLEVIEWER_ONCLICK			1	
#define CDTABLEVIEWER_ONLOADTIMER		2
#define CDTABLEVIEWER_ONLOADCYCLEONCE	3
#define CDTABLEVIEWER_TABS				4
#define CDTABLEVIEWER_FIELDDRIVEN		5
#define CDTABLEVIEWER_CYCLEONCE			6
#define CDTABLEVIEWER_CAPTIONS			8
#define CDTABLEVIEWER_LAST				8
	BYTE	ViewerType;
	BYTE	Spare;
	WORD	MinRowHeight;
	WORD	Spares[1];		
	DWORD	StyleColor1;
	DWORD	StyleColor2;
	COLOR_VALUE	InnerBorderColor;
	WORD	NameLength;
	/* NOTE:	The following lengths can not be used.  Previous versions of Notes
				are not setup to deal with any length beyond the name length.
				Hang will occur if they are used and you try to open the document
				on a previous version of Notes.  In the same light, this sturcture's
				size can not be changed, no additional items of variable length
				can be added.

				The words could simply be used as word storage.  They just can
				not be useds as lengths.
	*/
	WORD	ImagePacketLength;	
	WORD	RowLabelDataLength;
	}	CDPRETABLEBEGIN;

/* Table Data Extension Record 

	This record was added because the Pre Table Begin Record can not be
	expanded and R6 required more data to be stored. */

typedef struct
	{
	WSIG	Header;
									/* Fixed section ------------ */
	DWORD	dwColumnSizeToFitBits1;
	DWORD	dwColumnSizeToFitBits2;
	WORD	wEqualSizeTabsWidthX;
	WORD	wTabsIndentWidthX;
									/* Each Available member can be used explicitly for
										data. */
	WORD	wAvailable3;
	WORD	wAvailable4;
	DWORD	dwAvailable5;
	DWORD	dwAvailable6;
	DWORD	dwAvailable7;
	DWORD	dwAvailable8;
	DWORD	dwAvailable9;

	WORD	wcTabLabelFont;			/* Length of Tabs Label Font */

									/* Each AvailableLength member can be used for
										data in the variable section. */
	WORD	wAvailableLength11;
	WORD	wAvailableLength12;

	WORD	wExtension2Length;		/* When all Available members have been used up, this
										should be used to extend to another data extension
										for additional storage. */

									/* Variable section ------------ */
	/* The wcTabLabelFont variable data defined below is actually 
	 *   a FONTID followed by a DWORD followed by a COLOR_VALUE.
	 *   Some Notes6 pre-release versions only wrote the FONTID/DWORD combination 
	 *   without the trailing COLOR_VALUE, so need to verify that 
	 *   wcTabLabelFont is at least large enough to hold FONTID, DWORD, and COLOR_VALUE 
	 *   before trying to read off the COLOR_VALUE.  SDK consumers should
	 *   ignore the value of the DWORD when reading this structure and
	 *   write the DWORD value as 0 when writing this structure
	 */
	/* <wcTabLabelFont variable data> */
	/* <wAvailableLength11 variable data> */
	/* <wAvailableLength12 variable data> */
	/* <wExtension2Length variable data>  */
} CDTABLEDATAEXTENSION;

/*	Begin Table Record -

	This record specifies the beginning of a table.  It contains interesting
	information about the format and size of the table. */

typedef struct
	{
	BSIG Header;
	WORD LeftMargin;					/*	TWIPS */
	WORD HorizInterCellSpace;			/*	TWIPS */
	WORD VertInterCellSpace;			/*	TWIPS */
/* NOTE! all items below this comment are NOT guaranteed to have been zeroed if
	created in V2; all items are zeroed before use in V4 */
	WORD V4HorizInterCellSpace;			/*	TWIPS -- this field was spare in v3 */
	WORD V4VertInterCellSpace;			/*	TWIPS -- this field was spare in v3 */	
	WORD Flags;							/* Flags (CDTABLE_xxx) */
#define	CDTABLE_AUTO_CELL_WIDTH		0x0001	/* True if automatic cell width calculation */
#define CDTABLE_V4_BORDERS			0x0002  /* True if the table was created in v4 */
#define CDTABLE_3D_BORDER_EMBOSS	0x0004  /* True if the table uses embossed borders */
#define CDTABLE_3D_BORDER_EXTRUDE	0x0008  /* True if the table uses extruded borders */
#define CDTABLE_BIDI_RTLTABLE		0x0010  /* True if the table reading order is right to left */
#define CDTABLE_ALIGNED_RIGHT		0x0020  /* True if the table alignment is right */
#define CDTABLE_COLLAPSIBLE			0x0040  /* True if the table is collapsible to one row */
#define CDTABLE_LEFTTOP				0x0080  
#define CDTABLE_TOP					0x0100 
#define CDTABLE_LEFT				0x0200 
#define CDTABLE_ALTERNATINGCOLS		0x0400 
#define CDTABLE_ALTERNATINGROWS		0x0800 
#define CDTABLE_RIGHTTOP			0x2000
#define CDTABLE_RIGHT				0x4000
#define CDTABLE_SOLID				0x6f80	/* all styles on means solid color*/
#define CDTABLE_TEMPLATEBITS		0x6f80
#define CDTABLE_ALIGNED_CENTER		0x1000  /* True if the table alignment is center */
#define CDTABLE_TEXTFLOWS			0x8000  /* True if the table rows text flows cell to cell */
	} CDTABLEBEGIN;

typedef struct
	{
	BSIG Header;
	BYTE Row;						/*	Row number (0 based) */
	BYTE Column;					/*	Column number (0 based) */
	WORD LeftMargin;				/*	Twips */
	WORD RightMargin;				/*	Twips */
	WORD FractionalWidth;			/*	20" (in twips) * CellWidth / TableWidth
										Used only if AutoCellWidth is
										specified in the TABLEBEGIN. */
	BYTE Border;					/*	4 cell borders, each 2 bits wide */
									/*	(see shift and mask CDTC_xxx values) */
									/*	Value of each cell border is one of */
									/*	TABLE_BORDER_xxx. */
#define	CDTC_S_Left		0
#define	CDTC_M_Left		0x0003
#define	CDTC_S_Right	2
#define	CDTC_M_Right	0x000c
#define	CDTC_S_Top		4
#define	CDTC_M_Top		0x0030
#define	CDTC_S_Bottom	6
#define	CDTC_M_Bottom	0x00c0
#define TABLE_BORDER_NONE	0
#define TABLE_BORDER_SINGLE	1
#define TABLE_BORDER_DOUBLE	2

	BYTE Flags;						

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -