📄 editods.h
字号:
#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 + -