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

📄 labstr.h

📁 图像处理的压缩算法
💻 H
📖 第 1 页 / 共 2 页
字号:
/// RB 11/16/98 t4121 v6.0138 CURRENT_DATE_IN_CUSTOM_FORMAT_IN_DIALOG
#define	GET_NUMBER_OF_FIRST_CUSTOM_FORMAT		0x00000100
/// end CURRENT_DATE_IN_CUSTOM_FORMAT_IN_DIALOG
WORD FAR PASCAL LABUTIL_custom_date_format(int nIndex, WORD wCntrl, LPTSTR lpszCustomDateFormat);
/// end DATE_TIME_CUSTOM_FORMAT

int     FAR PASCAL LABUTIL_dateinc(LPDOUBLE,ULONG , USHORT);

#define LABDATE_DATEFORMAT_SEC  (1.0/86400)     /* 1/(24*3600) */

/// CPY v3.782 DATE_INC_BUG
/// these constants are kept the same but they all
/// act with lpOutPut == LPNULL
/// added new for 3.782
#define	MASK_LABDATE_MANAGEMENT		0xF000
#define	LABDATE_IS_SIMPLE_FORMAT	0x7000
	/// return 1 if spcified index in style should
	/// use simple format for data entry
#define LABDATE_INIT			0x8000 /// v3.782 kept the same
/// CPY v3.73
#define	LABDATE_TEST_HEBR_LANGUAGE	0x6000 /// v3.782 changed from 8001
//				0x8001	

///JLIU 4.998 7/14/97 READ_DATE_TIME_MODIFY
#define	LABDATE_TEST_DATATIME		0x1000	
///end READ_DATE_TIME_MODIFY


/// CPY v3.782

/// CPY v3.783 DATE_DIALOG_BUG 4/26/95
//#define LABDATE_SHORT_FORMAT    0x0000
#define LABDATE_SHORT_FORMAT    0x0004
#define LABDATE_LONG_FORMAT		0x0001
#define LABDATE_SHORT_CHAR		0x0002

/// CPY v3.783 DATE_DIALOG_BUG 4/26/95
//#define LABDATE_FORMAT			0x0003
#define LABDATE_FORMAT			0x0007

#define LABDATE_NUM_FORMAT		0x0003	/* 19920201 */
/// CPY v3.783 DATE_DIALOG_BUG 4/26/95
//#define LABDATE_ADD_TIME		0x0004
#define LABDATE_ADD_TIME		0x8000
/// move to the highest bit
#define LABDATE_ADD_SEC			0x0008


#define LABDATE_FOMRAT_READ		0x0010	/* for the FormatDateControl routine only */

/// CPY v3.783 DATE_DIALOG_BUG 4/26/95
#define	MASK_LABDATA_OTHERFORMAT	0x00F0
///

#define LABDATE_ALPHA_MONTH		0x0010
#define LABDATE_NUMERIC_MONTH   0x0020
#define LABDATE_NUMERIC_DAY		0x0030
#define LABDATE_ALPHA_WDAY		0x0040
#define LABDATE_NUMERIC_WDAY    0x0050

#define LABDATE_ALPHA_QUATER    0x0060
#define LABDATE_NUMERIC_QUATER  0x0070
#define LABDATE_NUMERIC_YEAR    0x0080
/* 0x00F0 for basic formats */


/* 0 for full date */
// CPY v3.53, these flags must be in the high byte
#define LABDATE_MONTH_ONLY		0x0800
#define LABDATE_DAY_ONLY		0x0400
#define	LABDATE_ADD_TIME_NUM	0x0200
#define	LABDATE_NO_DAY			0x0100

#define LABDATE_GET_DATE	3
#define LABDATE_GET_CORRECT	4
/// CPY v3.53
#define	LABDATE_SIMPLE_FORMAT	0x0080 // lowbyte but too big for index

#define LABDATE_INCREMENT		0x1000
#define LABDATE_GUESS_PARTIAL   0x2000
#define LABDATE_USE_FORMAT		0x4000 /* hibyte must be none zero to use format */

#define LABDATE_DATETIME	9
#define LABDATE_DATESEC		10








#define	TIME_HHMM		8
#define	TIME_HHMMSS		9

enum {
LABUTIL_DATE_INC = 0,
LABUTIL_DATE_INC_BY_UNIT,
LABUTIL_DATE_ROUND_INC,
LABUTIL_DATE_WAS_WEEK,
LABUTIL_DATE_ROUND_DAY,
LABUTIL_DATE_MATCH_DATE,
LABUTIL_DATE_MATCH_INC,
LABUTIL_DATE_ROUND_MONTH,/// CPY v3.85 11/7/95 DATE_INC_ERR
LABUTIL_DATE_ROUND_QUARTER,///CPY v3.98 11/14/95 ROUND_QUARTER, inc=year, minor=quarter still has problem
};

///CPY v3.85 11/7/95 DATE_INC_ERR
#define DATE_ROUND_DAY		0x10
#define	DATE_ROUND_MONTH	0x20
#define	DATE_ROUND_QUARTER	0x40 /// CPY v3.98 11/14/95 ROUND_QUARTER, inc=year, minor=quarter still has problem
///

void    FAR PASCAL LABUTIL_sprintf(LPSTR,LPSTR,double);
LPSTR   FAR PASCAL get_next_token_sep(LPSTR,LPSTR,LPSTR);

///CPY v4.11 6/26/96 ADD_FUNC_PROTOTYPE
int     FAR PASCAL LABUTIL_MemCopy(register LPSTR,register LPSTR,register LONG);
//int     FAR PASCAL LABUTIL_MemCopy(register HPSTR s,register HPSTR d,register LONG count);
/// can not make this change as there are many places that use this function with LPSTR

///CPY v4.11 6/26/96 ADD_FUNC_PROTOTYPE
//int     FAR PASCAL  LABUTIL_RowColChange(LPSTR,USHORT,USHORT,int);
int FAR PASCAL  LABUTIL_RowColChange(HPSTR lpInp,USHORT nrows,USHORT ncols,int size);

/// EJP v3.8 GETFILESEC
HGLOBAL	FAR PASCAL LABUTIL_GetFileSection(LPSTR lpStrFile, LPSTR lpStrSection);
/// end GETFILESEC
/// EJP v3.8 GETSET_CURR_FILE
// EJP v3.821 09-06-95 GET_PATH, Add message parameter.
//LPSTR	FAR PASCAL LABUTIL_GetFileSection_Filename(LPSTR lpStrNewFilename);
LPSTR	FAR PASCAL LABUTIL_GetFileSection_Filename(LPSTR lpStrNewFilename, WORD msg);
// end GET_PATH
/// end GETSET_CURR_FILE
/// EJP v3.8 GETMEMSEC
LPSTR	FAR PASCAL LABUTIL_GetMemSectionPtr(LPSTR lpStrFile, LPSTR lpStrSection, WORD far*wSize);
WORD	FAR PASCAL LABUTIL_GetMemSection(LPSTR lpStrMem, LPSTR lpStrSection, LPSTR lpStrDest);

int		FAR PASCAL LABUTIL_GetMemSectionEntry(
LPSTR	lpStrSection,
LPSTR	lpStrEntry,
LPSTR	lpStrDefValue,
LPSTR	lpStrDestBuf,
WORD	wDestBufSize,
LPSTR	lpStrFile);
/// end GETMEMSEC

int     FAR PASCAL  LABUTIL_StructCompare(LPSTR,LPSTR,LONG);

USHORT    FAR PASCAL  LABUTIL_MemObject(LPHANDLE,USHORT,USHORT,LPSTR,ULONG);
#define	LUMO_INIT	0
#define	MASK_NEED_HANDLE	0x1000

enum {
	LUMO_ADD = MASK_NEED_HANDLE,
	LUMO_GET,
	LUMO_FIND,
	LUMO_DELETE,
	LUMO_DESTROY,
	//---------- CPY v4.9775 6/17/97 b2457 PLOT_ID_FOR_SCRIPT_ADDED_MENUS
	LUMO_SET_INTERNAL,
	//---------- PLOT_ID_FOR_SCRIPT_ADDED_MENUS
	};

LPSTR	FAR PASCAL LABUTIL_MultiLineControl(LPSTR lpstr,LPSTR lpstr2,USHORT cntrl);
#define	LUMLC_COUNT	0
#define	LUMLC_REVERT_ORDER	1
#define	LUMLC_NEXT_LINE		2

///CPY v3.8 6/1/95 STRLIST
#ifndef	LFS_NOT_IN_LIST ///CPY v3.8 6/1/95 STRLIST 
	typedef struct	STRLIST {
	//typedef struct	LU_STRLIST {
		USHORT	id;
		LPSTR	str;
	}STRLIST,FAR *LPSTRLIST;
	
	/// CPY v3.74
	typedef	int	STRID;
	///
	STRID FAR PASCAL LABUTIL_FindString(LPSTRLIST lpList,LPSTR lpstr);
	#define	LFS_NOT_IN_LIST	32764
#endif	/// LFS_NOT_IN_LIST ///CPY v3.8 6/1/95 STRLIST 

/// CPY v3.53, allow global falgs
#define	MASK_LIST	0x0800
#define	MASK_SUB	0x2000
#define	MASK_STR	0x4000
#define	MASK_CMD	0x8000
///

int FAR PASCAL LABUTIL_End_Number(LPSTR lpdes,LPSTR lpsrc);
/* copy src to des, return number if exist or zero */


/// CPY move these here from labutil.h
int FAR PASCAL Write64K(HFILE hFile,HPSTR lpData,LONG dwDataLen);
int FAR PASCAL Read64K(HFILE hFile,HPSTR lpData,LONG dwDataLen);

#ifdef	ORG_JAPAN

typedef		USHORT	OMBCSCHAR;

///CPY b1666 v4.93 2/22/97 HALF_WIDTH_J_CHARACTERS
//CPY: after more examination, it turns out that it is due to the half width characters. So temp solution is to tell people to avoid using these.
//I looked at the character map and discover the double-byte is in the range
//of 0x80 to 0x9f, 0xe0 to 0xff, and 0xA0 to 0xDF is reserved for these
//halfwidth characters.
//#define	NON_PRNT_ASCII(cc)	((BYTE)(cc) & 0x80)
#define BYTE_CHAR(cc)			((BYTE) (cc))
#define HALF_CHAR(cc)			(BYTE_CHAR(cc) >= 0xA0 && BYTE_CHAR(cc) <= 0xDF)
#define LEAD_CHAR_FOR_2BYTE(cc)	( (BYTE_CHAR(cc) & 0x80) && !HALF_CHAR(cc))

LPSTR	setc_two(LPSTR lp,OMBCSCHAR cc);
USHORT	getc_two(LPSTR lp);
USHORT	getc_two_adv(LPSTR lplp);

///CPY b1666 v4.93 2/22/97 HALF_WIDTH_J_CHARACTERS
//#define	ADV_STR(lp)		lp=NON_PRNT_ASCII(*lp)? (LPSTR)(lp)+2 : (LPSTR)(lp)+1
#define	ADV_STR(lp)		lp=LEAD_CHAR_FOR_2BYTE(*lp)? (LPSTR)(lp)+2 : (LPSTR)(lp)+1
///
#define	SET_CHAR(lp,cc)	lp = setc_two(lp,cc)
#define	GET_CHAR(lp)	getc_two(lp)

#define	SET_ADV(lpd,lps)	SET_CHAR(lpd,GET_CHAR(lps)),ADV_STR(lps)
#define	GET_ADV(lps)		getc_two_adv(&lps)

#else

/// ML 10/27/97 UNIFIED_STRING_MANIPULATION_MBCS

#ifdef		UNIFIED_STRING_MANIPULATION_MBCS

#pragma	message("UNIFIED UNIFIED UNIFIED UNIFIED UNIFIED String manipulation using MBCS UNIFIED UNIFIED UNIFIED UNIFIED UNIFIED")

typedef		USHORT	OMBCSCHAR;

LPSTR		adv_str_MBCS(LPSTR *lplp);
OMBCSCHAR	getc_MBCS(LPCSTR lp);
OMBCSCHAR	setc_MBCS(LPSTR *lplp, OMBCSCHAR cc);
OMBCSCHAR	setc_adv_MBCS(LPSTR *lplpd, LPSTR *lplps);
OMBCSCHAR	getc_adv_MBCS(LPSTR *lplp);

#define	ADV_STR(lp)			adv_str_MBCS(&lp)
#define	GET_CHAR(lp)		getc_MBCS(lp)
#define	SET_CHAR(lp,cc)		setc_MBCS(&lp, cc)
#define	SET_ADV(lpd,lps)	setc_adv_MBCS(&lpd, &lps)
#define	GET_ADV(lps)		getc_adv_MBCS(&lps)



#else		// !UNIFIED_STRING_MANIPULATION_MBCS
/// end UNIFIED_STRING_MANIPULATION_MBCS

typedef	char	OMBCSCHAR; //-----------------------	CPY v6.0130 b4228 9/25/98 PLOT_A_SUPPORT_MORE_THAN_10_NUMBERS

#define	ADV_STR(lp)			lp++
#define	GET_CHAR(lp)		*lp
#define	SET_CHAR(lp,cc)		*lp++ = cc
#define	SET_ADV(lpd,lps)	*lpd++ = *lps++
#define	GET_ADV(lps)		*lps++

/// ML 10/27/97 UNIFIED_STRING_MANIPULATION_MBCS
#endif		// !UNIFIED_STRING_MANIPULATION_MBCS
/// end UNIFIED_STRING_MANIPULATION_MBCS

#endif

#define	ADV_ONE_BYTE(lp)	lp++
#define	SET_ONE_BYTE(lp,cc)	*lp = cc
#define	SET_ONE_ADV(lpd,lps)	*lpd++ = *lps++

///  YN  v4.94 2/28/97  MOVED_ERR_SIGN_TO_OUTIL.DLL
// For make it accessible from NLSF
#ifdef	ORG_JAPAN
#define	SIGN_CHAR	"亇"
#else
#define	SIGN_CHAR	"

⌨️ 快捷键说明

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