diff options
Diffstat (limited to 'protocols/LotusNotify/src/cnotesapi/include/misc.h')
-rw-r--r-- | protocols/LotusNotify/src/cnotesapi/include/misc.h | 413 |
1 files changed, 413 insertions, 0 deletions
diff --git a/protocols/LotusNotify/src/cnotesapi/include/misc.h b/protocols/LotusNotify/src/cnotesapi/include/misc.h new file mode 100644 index 0000000000..2b6677ceb9 --- /dev/null +++ b/protocols/LotusNotify/src/cnotesapi/include/misc.h @@ -0,0 +1,413 @@ + +#if defined(OS400) && (__OS400_TGTVRM__ >= 510) +#pragma datamodel(P128) +#endif + +/*********************************************************************/ +/* */ +/* Licensed Materials - Property of IBM */ +/* */ +/* L-GHUS-5RWNHM, L-GHUS-5RWNFH */ +/* (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. */ +/* */ +/*********************************************************************/ + + + +/* Miscellaneous Package Global Definitions */ + +#ifndef MISC_DEFS +#define MISC_DEFS + + +#ifdef __cplusplus +extern "C" { +#endif + + + +/* Some useful constants */ + +#define MAXALPHANUMBER 40 +#define MAXALPHATIMEDATE 80 +#define MAXALPHATIMEDATEPAIR (80 * 2 + 3) +#define MAXSPRINTF 256 +#define MAXSOUNDEX (4+1) /* 4 chars plus null terminator */ + +/* Flags for IntlTextCompare */ + +#define INTL_ACCENT_SENSITIVE 0x00000001 +#define INTL_CASE_SENSITIVE 0x00000002 + + +/* time structure - NOTE: These fields MUST BE int's, NOT UNSIGNEDS! */ + +typedef struct { + int year; /* 1-32767 */ + int month; /* 1-12 */ + int day; /* 1-31 */ + int weekday; /* 1-7, Sunday is 1 */ + int hour; /* 0-23 */ + int minute; /* 0-59 */ + int second; /* 0-59 */ + int hundredth; /* 0-99 */ + int dst; /* FALSE or TRUE */ + int zone; /* -11 to +11 */ + TIMEDATE GM; +} TIME; + +/* Special encodings for TIMEDATE fields. Note that these are all in + HOST-SPECIFIC format, and must be used with TimeConstruct or + TimeExtractJulianDate or TimeExtractTicks! */ + +#define ALLDAY 0xffffffffL /* put this in the TIME field */ +#define ANYDAY 0xffffffffL /* put this in the DATE field */ +#define TICKS_IN_DAY 8640000L /* 10msec ticks in a day */ +#define TICKS_IN_HOUR 360000L /* 10msec ticks in an hour */ +#define TICKS_IN_MINUTE 6000L /* 10msec ticks in a minute */ +#define TICKS_IN_SECOND 100L /* 10msec ticks in a second */ +#define SECS_IN_DAY 86400L /* seconds in a day */ +#define SECS_IN_WEEK 604800L /* seconds in a week */ +#define SECS_IN_MONTH 2592000L /* seconds in a month (30 days) */ + + +/* DTFlags values (do not change - these values are also stored on disk!) */ + +#define DT_VALID 0x8000 /* Validity bit: If 1, use new DTFMT; if 0, use old TFMT */ +#define DT_4DIGITYEAR 0x0001 /* Require 4 digit year on INPUT (not output) */ +#define DT_ALPHAMONTH 0x0002 /* Require months be INPUT as letters, not digits (e.g. "jan", not 01) */ +#define DT_SHOWTIME 0x0004 /* Display time element on output */ +#define DT_SHOWDATE 0x0008 /* Display date element on output */ +#define DT_24HOUR 0x0040 /* Display time on output using 24 hour clock format */ +#define DT_STYLE_YMD 1 /* Date element order: Year, Month, Day, Day-of-week */ +#define DT_STYLE_MDY 2 /* Date element order: Day-of-week, Month, Day, Year */ +#define DT_STYLE_DMY 3 /* Date element order: Day-of-week, Day, Month, Year */ +#define DT_STYLE_MSK 0x000f0000 /* This is where we store the style value in DTFlags */ +#define DT_GET_STYLE(dwflag) ((dwflag & DT_STYLE_MSK) >> 0x10) /* Macro to retrieve the style value from DTFlags */ +#define DT_SET_STYLE(dwflag, style) (dwflag = ((dwflag & 0xfff0ffff) | (style << 0x10))) /* Macro to store the style value in DTFlags */ + +/* DTFlags2 values (do not change - these values are also stored on disk!) */ + +#define DT_USE_TFMT 0x0001 /* Use the 4.X format structure instead of this 5.X format structure */ + + +/* DTYearFmt values (do not change - these values are also stored on disk!) */ + +#define DT_YFMT_YY 1 /* 2 digit year */ +#define DT_YFMT_YYYY 2 /* 4 digit year */ +/* The following DTYearFmt values are valid only for Imperial calendars */ +#define DT_YFMT_GE 3 /* Single letter (first letter ) of epoch name and 1 or 2 digit (no leading zeros) year */ +#define DT_YFMT_GEE 4 /* Single letter (first letter ) of epoch name and 2 digit (with leading zeros, if necessary) year */ +#define DT_YFMT_GGE 5 +#define DT_YFMT_GGEE 6 /* Abbreviated spelling and 2 digit (with leading zeros, if necessary) year */ +#define DT_YFMT_GGGE 7 +#define DT_YFMT_GGGEE 8 /* fully spelled out epoch name and 2 digit (with leading zeros, if necessary) year */ + +/* DTDOWFmt values (Day-Of-Week) (do not change - these values are also stored on disk!) */ + +#define DT_WFMT_WWW 1 +#define DT_WFMT_WWWW 2 +#define DT_WFMT_WWWP 3 /* 3 letter abbreviation inside parenthesis */ +#define DT_WFMT_WWWWP 4 /* Spelled out fully inside parenthesis */ + +/* DTMonthFmt values (do not change - these values are also stored on disk!) */ + +#define DT_MFMT_M 1 +#define DT_MFMT_MM 2 +#define DT_MFMT_MMM 3 +#define DT_MFMT_MMMM 4 + +/* DTDayFmt values (do not change - these values are also stored on disk!) */ + +#define DT_DFMT_D 1 +#define DT_DFMT_DD 2 + +/* DTDShow values (controls what is shown on OUTPUT for date) */ +/* (do not change - these values are also stored on disk!) */ + +#define DT_DSHOW_ALL 1 +#define DT_DSHOW_YM 2 +#define DT_DSHOW_WMD 3 +#define DT_DSHOW_W 4 +#define DT_DSHOW_M 5 +#define DT_DSHOW_MD 6 +#define DT_DSHOW_MDY 7 +#define DT_DSHOW_D 8 +#define DT_DSHOW_Y 9 + +/* DTDSpecial bit values: Special handling of date OUTPUT */ +/* (do not change - these values are also stored on disk!) */ + +#define DT_DSPEC_NONE 0 /* No special handling */ +#define DT_DSPEC_TODAY 0x0001 /* Use 'Today', 'Yesterday', 'Tomorrow', when possible */ +#define DT_DSPEC_Y4 0x0002 /* Always display year on OUTPUT as 4 digit year */ +#define DT_DSPEC_21Y4 0x0004 /* Output 2 digit year for this century; use 4 digit year for other century */ +#define DT_DSPEC_CURYR 0x0008 /* Display year when not the current year */ + +/* DTTShow values (controls what to shown on OUTPUT for time) */ +/* (do not change - these values are also stored on disk!) */ + +#define DT_TSHOW_H 1 +#define DT_TSHOW_HM 2 +#define DT_TSHOW_HMS 3 +#define DT_TSHOW_ALL 4 + +/* Values for FTFMT "Preferences" field (do not change - these values are also stored on disk!) */ + +#define NPREF_CLIENT 0 /* Get preferences from the client */ +#define NPREF_FIELD 1 /* Get preferences fromt the form or view */ + +/* Date/Time formatting data */ + +typedef struct { + BYTE Preferences; /* NPREF_xxx. Get preferences from the Client or from the Form/View? */ + DWORD DTFlags; + DWORD DTFlags2; /* In case we need more room */ + BYTE DTDOWFmt; /* Day-of-week format choice */ + BYTE DTYearFmt; /* Year format choice */ + BYTE DTMonthFmt; /* Month format choice */ + BYTE DTDayFmt; /* Day format choice */ + BYTE DTDShow; /* Date display choice */ + BYTE DTTShow; /* Time display choice */ + BYTE DTDSpecial; /* Date special display choice */ + BYTE DTTZone; /* Time zone display choice */ + char* DTDsep1; /* Date field separator string #1 */ + char* DTDsep2; /* Date field separator string #2 */ + char* DTDsep3; /* Date field separator string #3 */ + char* DTTsep; /* Time field separator string */ +} DTFMT; + + +/* Currency flags */ + +#define NCURFMT_SYMFOLLOWS 0x0001 /* The currency symbol follows the value */ +#define NCURFMT_USESPACES 0x0002 /* Inset space between symbol and value */ +#define NCURFMT_ISOSYMUSED 0x0004 /* Using 3 letter ISO for currency symbol */ + +/* Currency selection values */ + +#define NCURFMT_COMMON 0 +#define NCURFMT_CUSTOM 1 + +/* Number Format */ + +#define NFMT_GENERAL 0 /* Number Formats */ +#define NFMT_FIXED 1 +#define NFMT_SCIENTIFIC 2 +#define NFMT_CURRENCY 3 + +#define NATTR_PUNCTUATED 0x0001 /* Number Attributes */ +#define NATTR_PARENS 0x0002 +#define NATTR_PERCENT 0x0004 +#define NATTR_VARYING 0x0008 + +typedef struct { + BYTE Digits; /* Number of decimal digits */ + BYTE Format; /* Display Format */ + BYTE Attributes; /* Display Attributes */ + BYTE Unused; +} NFMT; + +/* Time Format */ + +#define TDFMT_FULL 0 /* year, month, and day */ +#define TDFMT_CPARTIAL 1 /* month and day, year if not this year */ +#define TDFMT_PARTIAL 2 /* month and day */ +#define TDFMT_DPARTIAL 3 /* year and month */ +#define TDFMT_FULL4 4 /* year(4digit), month, and day */ +#define TDFMT_CPARTIAL4 5 /* month and day, year(4digit) if not this year */ +#define TDFMT_DPARTIAL4 6 /* year(4digit) and month */ +#define TTFMT_FULL 0 /* hour, minute, and second */ +#define TTFMT_PARTIAL 1 /* hour and minute */ +#define TTFMT_HOUR 2 /* hour */ +#define TZFMT_NEVER 0 /* all times converted to THIS zone */ +#define TZFMT_SOMETIMES 1 /* show only when outside this zone */ +#define TZFMT_ALWAYS 2 /* show on all times, regardless */ + +#define TSFMT_DATE 0 /* DATE */ +#define TSFMT_TIME 1 /* TIME */ +#define TSFMT_DATETIME 2 /* DATE TIME */ +#define TSFMT_CDATETIME 3 /* DATE TIME or TIME Today or TIME Yesterday */ + +typedef struct { + BYTE Date; /* Date Display Format */ + BYTE Time; /* Time Display Format */ + BYTE Zone; /* Time Zone Display Format */ + BYTE Structure; /* Overall Date/Time Structure */ +} TFMT; + +typedef MEMHANDLE INTLTIMEDATEHANDLE; + +/* + * Property values to set for converting an extended International TIMEDATE value. + */ +typedef enum +{ + AMStringProperty = 1, + PMStringProperty = 2 +} INTL_TIMEDATE_PROPERTY; + + +/* function templates */ + +BOOL LNPUBLIC TimeLocalToGM (TIME far *Time); +BOOL LNPUBLIC TimeGMToLocal (TIME far *Time); +BOOL LNPUBLIC TimeGMToLocalZone (TIME far *Time); +int LNPUBLIC TimeDateCompare (const TIMEDATE far *t1, const TIMEDATE far *t2); +int LNPUBLIC TimeDateCollate (const TIMEDATE far *t1, const TIMEDATE far *t2); +DWORD LNPUBLIC TimeExtractJulianDate (const TIMEDATE far *); +DWORD LNPUBLIC TimeExtractDate (const TIMEDATE far *); +DWORD LNPUBLIC TimeExtractTicks (const TIMEDATE far *); +void LNPUBLIC TimeExtractLocal (const TIMEDATE far *Time, BOOL fTime, TIMEDATE far *retTime); +void LNPUBLIC TimeConstruct (DWORD Date, DWORD Time, TIMEDATE far *result); + + +#define TIMEDATE_MINIMUM 0 +#define TIMEDATE_MAXIMUM 1 +#define TIMEDATE_WILDCARD 2 +void LNPUBLIC TimeConstant(WORD, TIMEDATE far *); + +#define TimeDateEqual(a,b) ((BOOL)TimeDateCollate(a,b)==0) +#define TimeDateClear(a) (TimeConstant(TIMEDATE_MINIMUM, a)) +STATUS LNPUBLIC TimeDateIncrement (TIMEDATE far *Time, LONG Interval); +LONG LNPUBLIC TimeDateDifference (const TIMEDATE far *t1, const TIMEDATE far *t2); +void LNPUBLIC TimeDateDifferenceFloat (const TIMEDATE far *t1, + const TIMEDATE far *t2, NUMBER far *difference); +BOOL LNPUBLIC TimeDateAdjust (TIMEDATE far *Time, int seconds, int minutes, int hours, int days, int months, int years); +int LNPUBLIC IntlTextCompare(const void far *Str1, WORD Str1Len, + const void far *Str2, WORD Str2Len, DWORD Flags); +STATUS LNPUBLIC ConvertTextToTIMEDATE (const void far *IntlFormat, + const TFMT far *TextFormat, + char far * far *Text, + WORD MaxLength, + TIMEDATE far *retTIMEDATE); +/* + * Functions to allow TIMEDATE conversion on extended International Timedates. + */ +STATUS LNPUBLIC IntlTIMEDATECreateHandle(INTLTIMEDATEHANDLE *hTimeDateHandle); +void LNPUBLIC IntlTIMEDATEDeleteHandle(INTLTIMEDATEHANDLE hTimeDateHandle); +STATUS LNPUBLIC IntlTIMEDATESetValue(INTLTIMEDATEHANDLE hTimeDateHandle, INTL_TIMEDATE_PROPERTY prop, void *propValue); +STATUS LNPUBLIC IntlTIMEDATEGetValue(INTLTIMEDATEHANDLE hTimeDateHandle, INTL_TIMEDATE_PROPERTY prop, WORD valueLen, void *retpropValue); +STATUS LNPUBLIC IntlTIMEDATEConvertToText (INTLTIMEDATEHANDLE hTimeDateHandle, const void far *IntlFormat, + const DTFMT *ExtTextFormat, WORD DTFMTLen, + const TIMEDATE *InputTime, WORD TextBufferLength, + char *retTextBuffer, WORD *retTextLength); +STATUS LNPUBLIC ConvertTextToTIMEDATEPAIR (const void far *IntlFormat, + const TFMT far *TextFormat, + char far * far *Text, + WORD MaxLength, + TIMEDATE_PAIR far *retTIMEDATE); +STATUS LNPUBLIC ConvertTIMEDATEToText (const void far *IntlFormat, + const TFMT far *TextFormat, + const TIMEDATE far *InputTime, + char far *retTextBuffer, + WORD TextBufferLength, + WORD far *retTextLength); +STATUS LNPUBLIC ConvertTIMEDATEPAIRToText (const void far *IntlFormat, + const TFMT far *TextFormat, + const TIMEDATE_PAIR far *InputTime, + char far *retTextBuffer, + WORD TextBufferLength, + WORD far *retTextLength); +STATUS LNPUBLIC ConvertTextToFLOAT (const void far *IntlFormat, + const NFMT far *NumberFormat, + char far * far *ppInputText, + WORD InputTextMaxLength, + NUMBER far *retNumber); +STATUS LNPUBLIC ConvertFLOATToText (const void far *IntlFormat, + const NFMT far *NumberFormat, + NUMBER far *Number, + char far *retTextBuffer, + WORD TextBufferLength, + WORD far *retTextLength); +void LNPUBLIC Soundex (const char far *String, WORD StringLength, char far *retSoundexString); + +/* Abstract */ + +/* chunk separator parameters */ +#define ABS_CHUNKBEGIN "ChunkBegin=" +#define ABS_CHUNKSEP "ChunkSep=" +#define ABS_CHUNKEND "ChunkEnd=" + +/* abstraction commands */ +#define ABS_TEXTONLY "textonly " +#define ABS_COUNTWORDS "countwords " +#define ABS_SAVE "save " +#define ABS_RESTORE "restore " +#define ABS_TRYFIT "tryfit " +#define ABS_ABBREV "abbrev " +#define ABS_SORTCHUNKS "sortchunks " +#define ABS_NOSTOPLIST "nostoplist " +#define ABS_NOSIGLIST "nosiglist " +#define ABS_USEDICT "ab-usedict " +#define ABS_NODICT "ab-usedict=0 " +#define ABS_DROPVOWELS "ab-dropvowels " +#define ABS_KEEPVOWELS "ab-dropvowels=0 " +#define ABS_TRIMWHITE "ab-trimwhite " +#define ABS_NOTRIMWHITE "ab-trimwhite=0 " +#define ABS_TRIMPUNCT "ab-trimpunct " +#define ABS_NOTRIMPUNCT "ab-trimpunct=0 " +#define ABS_DROPFIRSTVOWEL "ab-dropfirstvowels " +#define ABS_KEEPFIRSTVOWEL "ab-dropfirstvowels=0 " + + +STATUS LNPUBLIC Abstract(char far *szKeywords, + char far *szText, + DWORD maxAbstract, + char far *szAbstract, + DWORD far *retSize); + + +STATUS LNPUBLIC SECHashPassword(WORD wPasswordLen, + BYTE *Password, + WORD wMaxDigestLen, + WORD *retDigestLen, + BYTE *retDigest, + DWORD ReservedFlags, + void *pReserved + ); + +STATUS LNPUBLIC SECVerifyPassword(WORD wPasswordLen, + BYTE *Password, + WORD wDigestLen, + BYTE *Digest, + DWORD ReservedFlags, + void *pReserved + ); + +/* Notes bitmap conversion routines and constants. Should be exposed in the CAPI + notescvt.c +*/ +#define CONVERT_NOTESBITMAP_TO_GIF 0 +typedef STATUS (LNCALLBACKPTR pConvertNBmpWriter)(void *pWriterCtx, /* user defined writer context */ + BYTE *bytes, /* data bytes */ + DWORD byteCount, /* maxChunkSize or totalImageSizeInBytes */ + DWORD totalImageSizeInBytes); +STATUS LNPUBLIC ConvertNotesBitmapRead(MEMHANDLE *phConvertContext, + WORD cdSignature, + char far *pCDRecord, + DWORD recordLength + ); +STATUS LNPUBLIC ConvertNotesBitmap(MEMHANDLE hConvertContext, /* created by ConvertNotesBitmapRead */ + WORD convertTo, /* CONVERT_NOTESBITMAP_TO_GIF */ + DWORD maxChunkSize, /* if zero will pass entire bitmap in bytes parameter of pWriter function*/ + pConvertNBmpWriter pWriter, /* user defined writer */ + void *pWriterCtx /* context passed to user defined writer */ + ); +STATUS LNPUBLIC ConvertNotesBitmapFree(MEMHANDLE *phConvertContext); + + +#ifdef __cplusplus +} +#endif + +#endif /* MISC_DEFS */ + +#if defined(OS400) && (__OS400_TGTVRM__ >= 510) +#pragma datamodel(pop) +#endif + |