📄 nsflog.cpp
字号:
case LNCOLOR_RED :
return "LNCOLOR_RED";
case LNCOLOR_GREEN :
return "LNCOLOR_GREEN";
case LNCOLOR_BLUE :
return "LNCOLOR_BLUE";
case LNCOLOR_MAGENTA :
return "LNCOLOR_MAGENTA";
case LNCOLOR_YELLOW :
return "LNCOLOR_YELLOW";
case LNCOLOR_CYAN :
return "LNCOLOR_CYAN";
case LNCOLOR_DARK_RED :
return "LNCOLOR_DARK_RED";
case LNCOLOR_DARK_GREEN :
return "LNCOLOR_DARK_GREEN";
case LNCOLOR_DARK_BLUE :
return "LNCOLOR_DARK_BLUE";
case LNCOLOR_DARK_MAGENTA :
return "LNCOLOR_DARK_MAGENTA";
case LNCOLOR_DARK_YELLOW :
return "LNCOLOR_DARK_YELLOW";
case LNCOLOR_DARK_CYAN :
return "LNCOLOR_DARK_CYAN";
case LNCOLOR_GRAY :
return "LNCOLOR_GRAY";
case LNCOLOR_LIGHT_GRAY :
return "LNCOLOR_LIGHT_GRAY";
default :
sprintf(Buf, "%d", (int)FontColor);
return (LNString)Buf;
} // END switch (FontColor);
} // END NSFLog::GetFontColorString
//---------------------------------------------------------------------------
//
// Name:
// NSFLog::GetFontFaceString
//
// Description:
// Translates the Font Face ID Symbol value into a string
// representing the symbol that it represents.
//
//---------------------------------------------------------------------------
LNString NSFLog::GetFontFaceString( const LNFACEID FaceID )
{
switch (FaceID)
{
case LNFACEID_ROMAN :
return "LNFACEID_ROMAN";
case LNFACEID_HELVETICA :
return "LNFACEID_HELVETICA";
case LNFACEID_COURIER :
return "LNFACEID_COURIER";
default:
return "UNKNOWN OR UNEXPOSED";
} // END switch (FaceID);
} // END NSFLog::GetFontFaceString
//---------------------------------------------------------------------------
//
// Name:
// NSFLog::ProcessCompositeData
//
// Description:
// Processes and Logs data about the current Rich Text Object which
// has been determined to be a Composite Data Record.
//
// Remarks:
//
// The following is a Reference of Signatures for Composite Records
// in items of data type COMPOSITE from ODS.H
// The ones with an asterisk ("*") are logged here.
// SIG_CD_GRAPHIC and SIG_CD_BUTTON are fully processed.
// The rest would be processed the same way and are left as a user exersize.
// (I dont have time to implement or maintain all of them!)
//
// * SIG_CD_PARAGRAPH
// * SIG_CD_PABDEFINITION
// * SIG_CD_PABREFERENCE
// * SIG_CD_TEXT
// * SIG_CD_HEADER
// * SIG_CD_LINKEXPORT2
// * SIG_CD_BITMAPHEADER
// * SIG_CD_BITMAPSEGMENT
// * SIG_CD_COLORTABLE
// * SIG_CD_GRAPHIC
// * SIG_CD_PMMETASEG
// * SIG_CD_WINMETASEG
// * SIG_CD_MACMETASEG
// * SIG_CD_CGMMETA
// * SIG_CD_PMMETAHEADER
// * SIG_CD_WINMETAHEADER
// * SIG_CD_MACMETAHEADER
// * SIG_CD_TABLEBEGIN
// * SIG_CD_TABLECELL
// * SIG_CD_TABLEEND
// * SIG_CD_STYLENAME
//
// Signatures for Composite Records that are reserved internal
// records, as of API release 4.1 Their format may change between releases.
//
// SIG_CD_DOCUMENT_PRE_26
// SIG_CD_FIELD_PRE_36
// SIG_CD_FIELD
// SIG_CD_DOCUMENT
// SIG_CD_METAFILE
// SIG_CD_BITMAP
// SIG_CD_FONTTABLE
// SIG_CD_LINK
// SIG_CD_LINKEXPORT
// SIG_CD_KEYWORD
// SIG_CD_LINK2
// SIG_CD_CGM
// SIG_CD_TIFF
// SIG_CD_PATTERNTABLE
// SIG_CD_DDEBEGIN
// SIG_CD_DDEEND
// SIG_CD_OLEBEGIN
// SIG_CD_OLEEND
// SIG_CD_HOTSPOTBEGIN
// SIG_CD_HOTSPOTEND
// * SIG_CD_BUTTON
// SIG_CD_BAR
// SIG_CD_V4HOTSPOTBEGIN
// SIG_CD_V4HOTSPOTEND
// SIG_CD_EXT_FIELD
// SIG_CD_LAYOUT
// SIG_CD_LAYOUTTEXT
// SIG_CD_LAYOUTEND
// SIG_CD_LAYOUTFIELD
// SIG_CD_PABHIDE
// SIG_CD_PABFORMREF
// SIG_CD_ACTIONBAR
// SIG_CD_ACTION
// SIG_CD_DOCAUTOLAUNCH
// SIG_CD_LAYOUTGRAPHIC
// SIG_CD_LAYOUTBUTTON
//
// Saved Query records for items of type TYPE_QUERY
//
// SIG_QUERY_HEADER
// SIG_QUERY_TEXTTERM
// SIG_QUERY_BYFIELD
// SIG_QUERY_BYDATE
// SIG_QUERY_BYAUTHOR
// SIG_QUERY_FORMULA
// SIG_QUERY_BYFORM
// SIG_QUERY_BYFOLDER
// SIG_QUERY_USESFORM
// SIG_QUERY_TOPIC
//
// Save Action records for items of type TYPE_ACTION
//
// SIG_ACTION_HEADER
// SIG_ACTION_MODIFYFIELD
// SIG_ACTION_REPLY
// SIG_ACTION_FORMULA
// SIG_ACTION_LOTUSSCRIPT
// SIG_ACTION_SENDMAIL
// SIG_ACTION_DBCOPY
// SIG_ACTION_DELETE
// SIG_ACTION_BYFORM
// SIG_ACTION_MARKREAD
// SIG_ACTION_MARKUNREAD
// SIG_ACTION_MOVETOFOLDER
// SIG_ACTION_COPYTOFOLDER
// SIG_ACTION_REMOVEFROMFOLDER
// SIG_ACTION_NEWSLETTER
// SIG_ACTION_RUNAGENT
// SIG_ACTION_SENDDOCUMENT
// SIG_ACTION_FORMULAONLY
//
// Signatures for items of type TYPE_VIEWMAP_DATASET
//
// SIG_VIEWMAP_DATASET
//
// Signatures for items of type TYPE_VIEWMAP
//
// SIG_CD_VMHEADER
// SIG_CD_VMBITMAP
// SIG_CD_VMRECT
// SIG_CD_VMPOLYGON
// SIG_CD_VMPOLYLINE
// SIG_CD_VMREGION
// SIG_CD_VMACTION
// SIG_CD_VMELLIPSE
// SIG_CD_VMRNDRECT
// SIG_CD_VMBUTTON
// SIG_CD_VMTEXTBOX
//
// 188-191 available for more TYPE_VIEWMAP records.
//
// SIG_CD_VMPOLYRGN
//
//---------------------------------------------------------------------------
void NSFLog::ProcessCompositeData( const LNRTObject &Obj, const LNINT recordcount )
{
LNCompositeData CD;
WORD cdsignature;
CD = Obj;
LogFile << endl;
// Add a heading for the record to be logged.
LogLabel( " CD Record ", recordcount, 10);
cdsignature = CD.GetCDSignature();
switch ( cdsignature )
{
case SIG_CD_GRAPHIC :
LogCDGraphic( CD );
break;
case SIG_CD_BUTTON :
LogCDButton( CD );
break;
// The Rest of the CD Signatures just print out the type
// First two were expanded as an example for the user
// The rest of them will process the same way...
case SIG_CD_PARAGRAPH :
LogCDSignature( "SIG_CD_PARAGRAPH" );
break;
case SIG_CD_PABDEFINITION :
LogCDSignature( "SIG_CD_PABDEFINITION" );
break;
case SIG_CD_PABREFERENCE :
LogCDSignature( "SIG_CD_PABREFERENCE" );
break;
case SIG_CD_TEXT :
LogCDSignature( "SIG_CD_TEXT" );
break;
case SIG_CD_HEADER :
LogCDSignature( "SIG_CD_HEADER" );
break;
case SIG_CD_LINKEXPORT2 :
LogCDSignature( "SIG_CD_LINKEXPORT2" );
break;
case SIG_CD_BITMAPHEADER :
LogCDSignature( "SIG_CD_BITMAPHEADER" );
break;
case SIG_CD_BITMAPSEGMENT :
LogCDSignature( "SIG_CD_BITMAPSEGMENT" );
break;
case SIG_CD_COLORTABLE :
LogCDSignature( "SIG_CD_COLORTABLE" );
break;
case SIG_CD_PMMETASEG :
LogCDSignature( "SIG_CD_PMMETASEG" );
break;
case SIG_CD_WINMETASEG :
LogCDSignature( "SIG_CD_WINMETASEG" );
break;
case SIG_CD_MACMETASEG :
LogCDSignature( "SIG_CD_MACMETASEG" );
break;
case SIG_CD_CGMMETA :
LogCDSignature( "SIG_CD_CGMMETA" );
break;
case SIG_CD_PMMETAHEADER :
LogCDSignature( "SIG_CD_PMMETAHEADER" );
break;
case SIG_CD_WINMETAHEADER :
LogCDSignature( "SIG_CD_WINMETAHEADER" );
break;
case SIG_CD_MACMETAHEADER :
LogCDSignature( "SIG_CD_MACMETAHEADER" );
break;
case SIG_CD_TABLEBEGIN :
LogCDSignature( "SIG_CD_TABLEBEGIN" );
break;
case SIG_CD_TABLECELL :
LogCDSignature( "SIG_CD_TABLECELL" );
break;
case SIG_CD_TABLEEND :
LogCDSignature( "SIG_CD_TABLEEND" );
break;
case SIG_CD_STYLENAME :
LogCDSignature( "SIG_CD_STYLENAME" );
break;
// The Rest of these Signatures for Composite Records are reserved
// internal records, Enough of these have been processed to demonstrate
// logging of Composite Data Records.
default :
LogCDSignature( "DEFAULT CD SIGNATURE" );
break;
} // END switch ( cdsignature )
} // END NSFLog::ProcessCompositeData
//---------------------------------------------------------------------------
//
// Name:
// NSFLog::LogCDGraphic
//
// Description:
// Logs Information about this CD record which has a signature of type
// SIG_CD_GRAPHIC.
//
// Remarks:
// The CD Record Data is read from On Disk, using the
// following CDGRAPHIC Structure defination from EDITODS.H:
// NOTE: This is only an example, refer to the source for latest version.
//
// typedef struct
// {
// LSIG Header; // Signature and Length of this record.
// RECTSIZE DestSize; // Destination Display size in twips (1/1440 inch)
// RECTSIZE CropSize; // Width and Height of crop rect in twips. Currently unused
// CROPRECT CropOffset; // Crop rectangle offset from bottom left of Dest (in twips).Currently unused
// WORD fResize; // Set to true if object has been resized by user
// BYTE Version; // CDGRAPHIC_VERSION
// BYTE bReserved; // NOTE: This gets changed after version 4 !!!
// WORD wReserved; // NOTE: This gets changed after version 4 !!!
// } CDGRAPHIC;
//
// _CDGRAPHIC Is an odsmacro from ODSTYPES.H. To process other CD Records
// in a similar way as this method does you must substitute the CD Record
// structure type and macro name to the LNCompositeData::ReadODS method.
//---------------------------------------------------------------------------
LNSTATUS NSFLog::LogCDGraphic( const LNCompositeData &CD )
{
LNSTATUS Error;
CDGRAPHIC CdGraph;
// Read into memory the On Disk Structure CD Record.
if ( Error = CD.ReadODS(_CDGRAPHIC, &CdGraph) )
return Error;
// Append all of the fields from the CDGRAPHIC struct to the Log.
LogFile << " Type [CDGRAPHIC]" << endl
<< " DestSize: Width [";
LogNumberData( CdGraph.DestSize.width, 10 );
LogFile << "]" << endl;
LogFile << " Height [";
LogNumberData( CdGraph.DestSize.height, 10 );
LogFile << "]" << endl;
LogFile << " CropSize: Width [";
LogNumberData( CdGraph.CropSize.width, 10 );
LogFile << "]" << endl;
LogFile << " Height [";
LogNumberData( CdGraph.CropSize.height, 10 );
LogFile << "]" << endl;
LogFile << " CropOffset: Left [";
LogNumberData( CdGraph.CropOffset.left, 10 );
LogFile << "]" << endl;
LogFile << " Top [";
LogNumberData( CdGraph.CropOffset.top, 10 );
LogFile << "]" << endl;
LogFile << " Right [";
LogNumberData( CdGraph.CropOffset.right, 10 );
LogFile << "]" << endl;
LogFile << " Bottom [";
LogNumberData( CdGraph.CropOffset.bottom, 10 );
LogFile << "]" << endl;
LogFile << " fResize: [";
if(CdGraph.fResize)
LogFile << "TRUE";
else
LogFile << "FALSE";
LogFile << "]" << endl;
LogFile << " Version: [";
LogNumberData( CdGraph.Version + 1, 10 );
LogFile << "]" << endl;
LogFile << " wReserved: [";
LogNumberData( CdGraph.wReserved, 16 );
LogFile << "]" << endl;
return LNNOERROR;
} // END NSFLog::LogCDGraphic
//---------------------------------------------------------------------------
//
// Name:
// NSFLog::LogCDButton
//
// Description:
// Logs Information about this CD record which has a signature of type
// SIG_CD_BUTTON.
//
// Remarks:
// The CD Record Data is read from On Disk, using the
// following CDBUTTON Structure defination from EDITODS.H:
// NOTE: This is only an example, refer to the source for latest version.
//
// typedef struct
// {
// WSIG Header; // Signature and length of this record.
// WORD Flags;
// WORD Width;
// WORD Height;
// WORD Lines;
// FONTID FontID;
// // Button Text Follows:
// } CDBUTTON;
//
// _CDBUTTON Is an odsmacro from ODSTYPES.H. To process other CD Records
// in a similar way as this method does you must substitute the CD Record
// structure type and macro name to the LNCompositeData::ReadODS method.
//---------------------------------------------------------------------------
LNSTATUS NSFLog::LogCDButton( const LNCompositeData &CD )
{
LNSTATUS Error;
CDBUTTON CdButton;
WORD Flags;
LNINT Length;
char *TxtBuf;
LNString ButtonStr;
if ( Error = CD.ReadODS(_CDBUTTON, &CdButton) )
return Error;
Flags = CdButton.Flags;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -