The functions in the INTL dll.


IntlVersion
-----------
Syntax: 	WORD FAR PASCAL IntlVersion(void)
Description:	This function returns the version of the DLL. Backward
		compatibility is promised.
Parameters:	-
Returns:	The version number. Major version in HIBYTE, and minor
		version in LOBYTE.
Return value:	Currently 0x0100 (i.e. ver 1.0)
Remark:         The macros HIWORD and LOWORD are defined in windows.h


IntlInit
--------
Syntax: 	BOOL FAR PASCAL IntlInit(LPSTR lpLanguage)
Description:	This function initiates the DLL. It should be called
		before any use of the conversion functions (all functions
		except IntlVersion), and when trapping a WM_WININICHANGE
		message indicating a change in the [intl] section of
		WIN.INI.
Parameters:	lpLanguage:	The string in which a copy of the sLanguage
				variable will be stored.
Returns:        Result of initialization.
Return value:	FALSE if initiation failed
		TRUE on success.
Comment:	The sLanguage variable is a string containing a 3 letter
		abbreviation of the language to use. For example "spa" for
		Spanish or "itn" for Italian. Read WININI2.TXT for more
		information. If the returned string is empty, no language is
		set and you should provide the user a way of selecting a
		language.


IntlDateToString
----------------
Syntax: 	LPSTR FAR PASCAL IntlDateToString(LPSTR lpString,
						  int	nYear,
						  int	nMon,
						  int	nMday,
						  int	nWday,
						  int	nMode)
Description:	This function converts a date, in year, month, day of month
		and day of week, to a string. The conversion can be either
		to a long or short format.
Parameters:	lpString:	The string in which the result of the
				conversion will be stored.
		nYear:		as in struct tm.
		nMon:		as in struct tm.
		nMday:		as in struct tm (month day).
		nWday:		as in struct tm (week day).
		nMode:		IntlSHORT or IntlLONG. Anything else gives
				unpredictable results.
Returns:	lpString
Comment:	There is no check if the date is valid or not.
Remark:         IntlSHORT and IntlLONG are defined in intl.h

IntlTimeToString
----------------
Syntax: 	LPSTR FAR PASCAL IntlTimeToString(LPSTR lpString,
						  int	nNour,
						  int	nMin,
						  int	nSec)
Description:	This function converts a time in hours, minutes and seconds
		to a string.
Parameters:	lpString:      The string in which the result of the
			       conversion will be stored.
		nHour:	       as in struct tm.
		nMin:	       as in struct tm or IntlSKIP.
		nSec:	       as in struct tm or IntlSKIP.
Returns:	lpString
Comment:	There is no check if the time is valid or not.
		If a parameter is IntlSKIP the field representing that
		parameter and the fields after that will be ignored.
Remark:         IntlSKIP is defined in intl.h


IntlFloatToString
-----------------
Syntax: 	LPSTR FAR PASCAL IntlFloatToString(LPSTR  lpString,
						   double dVal,
						   int	  nMode,
						   size_t nWidth
						   int	  nDecimals)
Description:	This function converts a floating point number to a string.
		The conversion can be to any of the formats IntlSTD,
		IntlFIX, IntlSCI, IntlENG or IntlPRE.

Parameters:	lpString:   The string in which the result of the conversion
			    will be stored
		dVal:	    The floating point number to convert.
		nMode:	    The mode to convert to. The modes are:
			    IntlSTD:	The standard conversion. Numbers
					formatted as xxxx.yyyy. There are
					two exceptions to this. (1) The number
					is too large to be contained in the
					field. (2) The value of the number is
					so small, it'd be converted to 0.000.
					In both cases the mode becomes
					IntlSCI.
			    IntlFIX:	Same as IntlSTD, except the number
					that are small will be converted to
					0.000
			    IntlSCI:	Scientific mode. The number will be
					converted to the x.yyyEz format.
			    IntlENG:	Engineering mode. Like the IntlSCI,
					but the power of 10 will always be a
					multiple of 3. The format can then be
					either x.yyyEz, xx.yyEz or xxx.yEz
			    IntlPRE:	Prefix mode. Like IntlENG, but the
					power of 10, will be displayed using
					scientific prefixes (y, z, a, f, p,
					n, u, m, k, M, G, T, P, E, Z or Y) if
					within that range. Otherwise identical
					to IntlSCI.
		nWidth:	    The width of the field to contain the number.
		nDecilals:  The numbers of decimals to show, or IntlDEFAULT
			    to use the settings in in WIN.INI.
Returns:	lpString
Remarks:        IntlSTD, IntlFIX, IntlSCI, IntlENG and IntlPRE are defined in
		intl.h

IntlCurrencyToString
-------------------
Syntax: 	LPSTR FAR PASCAL IntlCurrencyToString(LPSTR  lpString,
						      double dVal,
						      int    nMode,
						      size_t nWidth,
						      int    nDecimals)
Description:	This function converts a floating point number to a string
		representing a currency. The conversion can be to any of the
		formats IntlSTD, IntlFIX, IntlSCI, IntlENG or IntlPRE. The
		function is identical to IntlFloatToString with the addition
		of the currency symbols.
Parameters:	lpString:   The string in which the result of the conversion
			    will be stored.
		dVal:	    The floating point number to convert.
		nMode:	    The mode to convert to. The modes are:
			    IntlSTD:	The standard conversion. Numbers
					formatted as xxxx.yyyy. There are two
					exceptions to this. (1) The number is
					too large to be contained in the
					field. (2) The value of the number is
					so small, it'd be converted to 0.000.
					In both cases the mode becomes
					IntlSCI.
			    IntlFIX:	Same as IntlSTD, except the number
					that are small will be displayed as
					0.000
			    IntlSCI:	Scientific mode. The number will be
					converted to the x.yyyEz format.
			    IntlENG:	Engineering mode. Like the IntlSCI,
					but the power of 10 will always be a
					multiple of 3. The format can then be
					either x.yyyEz, xx.yyEz or xxx.yEz
			    IntlPRE:	Prefix mode. Like IntlENG, but the
					power of 10, will be displayed using
					scientific prefixes (y, z, a, f, p,
					n, u, m, k, M, G, T, P, E, Z, Y) if
					within that range. Otherwise identical
					to IntlSCI.
		nWidth:	    The width of the field to contain the number.
		nDecimals:  The numbers of decimals to show, or	IntlDEFAULT
			    to use the settings in WIN.INI.
Returns:	lpString
Remarks:        IntlSTD, IntlFIX, IntlSCI, IntlENG and IntlPRE are defined in
		intl.h


IntlStringToDate
----------------
Syntax: 	BOOL FAR PASCAL IntlStringToDate(LPSTR lpString,
						 LPINT lpnYear,
						 LPINT lpnMon,
						 LPINT lpnMday,
						 LPSTR FAR *lpszEnd)
Description:	This functions converts a string containing a date in short
		form, to year, month and day of month. The conversion is
		quite liberal. Either of short and long form of the year
		is allowed. Leading zeroes are ignored.
Parameters:	lpString:	Contains the string to parse.
		lpnYear:	A pointer to an int where the year
				(formatted as in struct tm) will be
				stored. It can also be a NULL pointer.
		lpnMon: 	A pointer to an int where the month
				(formatted as in struct tm) will be
				stored. It can also be a null pointer.
		lpnMday:	A pointer to an int where the day of
				month (formatted as in struct tm) will
				be stored. It can also be a null pointer.
		lpszEnd:	A pointer to a char pointer. It will
				point to the location in lpString where
				the conversion ended, either upon
				completion or because of errors. You can
				also send a NULL pointer.

Returns:        Report of the success of the conversion.
Return value:	TRUE:  The conversion was successful.
		FALSE: The conversion failed.
Comment:	There is no check if the date is valid or not.
Remark: 	The type LPINT is defined as a pointer to an int, in intl.h

IntlStringToTime
----------------
Syntax: 	BOOL FAR PASCAL IntlStringToTime(LPSTR lpString,
						 LPINT lpnHour,
						 LPINT lpnMin,
						 LPINT lpnSec,
						 LPSTR FAR *lpszEnd)

Description:	This function converts a time, stored in a string, to
		hours, minutes and seconds. The conversion is quite
		liberal. If the am/pm equivalence is omitted, the string
		is interpreted as a 24 hour time. In 24 hour setting, a
		trailing am/pm equivalence is ignored. Leading zeroes are
		ignored.
Parameters:	lpString:	The string containing the time.
		lpnHour:	A pointer to an int where the
				hour (formatted as in struct tm)
				will be stored. It can also be a
				NULL pointer.
		lpnMin: 	A pointer to an int where the
				minute (formatted as in struct tm)
				will be stored. It can also be a
				NULL pointer.
		lpnSec: 	A pointer to an int where the
				seconds (formatted as in struct tm)
				will be stored. It can also be a
				NULL pointer.
		lpszEnd:	A pointer to a char pointer. It will
				point to the location in lpString where
				the conversion ended, either upon
				completion or because of errors. You
				can also send a NULL pointer.

Returns:        Report of the success of the conversion.
Return value:   TRUE:   The conversion was successful.
		FALSE:  The conversion failed
Comment:	There is no check if the time is valid or not.
Remark:         The type LPINT is defined as a pointer to an int, in intl.h

IntlStringToFloat
-----------------
Syntax: 	double FAR PASCAL IntlStringToFloat(LPSTR lpString,
						    LPSTR FAR *lpszEnd)
Description:	This function converts string representation of a floating
		point number to a double. The format of the string can be
		any of the IntlSTD, IntlFIX, IntlSCI, IntlENG or IntlPRE.

Parameters:	lpString:	The string containing the number to convert.
		lpszEnd:	A pointer to a char pointer. It will point
				to the location in lpString where the
				conversion ended, either upun completion or
				because of errors. You can also send a NULL
				pointer.
Returns:	The number or zero if the conversion failed.
Comment:        The number can be in any of the IntlFIX, IntlSTD, IntlSCI,
		IntlENG or the IntlPRE format.


IntlGetPhrase
-------------
Syntax: 	LPSTR FAR PASCAL IntlGetPhrase(LPSTR lpReturn,
					       int   nWidth,
					       LPSTR lpIniFile,
					       LPSTR lpPhrase)
Description:	This function looks up the phrase szPhrase in the current
		language section of the application specific ini file,
		specified in szIniFile, and if not found there, in INTL.INI,
		which contains the phrases listed in appendix  E of the
		CUA. It the phrase is not found in neither the application
		specific ini file, nor INTL.INI, szPhrase will be copied
		into szReturn. The search is case insensitive. If the
		first letter if the lookup-phrase is a capital letter, the
		first letter of the returned string is capitalized.

Parameters:	lpReturn:	Points to the buffer that will contain the
				returned string.
		nWidth: 	The size of szReturn.
		lpIniFile:	String containing the name of the
				application specific ini file. If it's
				either NULL or points to en empty string,
				only INTL.INI will be searched for the
				phrase.
		lpPhrase:	Points to the null terminated phrase.

Returns:	The pointer to lpReturn.
Comment:	White space and punctuation characters, according to isspace() 
		and ispunct(), in the beginning and the end of the phrase
		should be omitted in the ini files. They will be automatically
		inserted/appended to the translated phrase.

Example:
		Code example:

		IntlGetPhrase((LPSTR)szPhrase,
			      sizeof szPhrase,
			      "myini.ini",
			      "** yellow submarine **");
		.
		.

		MYINI.INI example:

		[ger]
		yellow submarine=gelbes U-Boot

		[swe]
		yellow submarine=gul ubt

IntlGetMessage
--------------
Syntax: 	LPSTR FAR PASCAL IntlGetMessage(LPSTR lpReturn,
						int   nWidth,
						LPSTR lpIniFile,
						LPSTR lpIdent)
Description:	This function fetches a message, in the current language,
		defined in your application specific ini file. If the
		message is not found in the current language section, the
		[usa] section will be searched. The message identified by
		szIdent MUST be defined in the [usa] section of your
		application specific ini file.

Parameters:	lpReturn:	Points to the buffer that will contain
				the returned string.
		nWidth: 	The length of lpReturn.
		lpIniFile:	String containing the name of the
				application specific ini file.
		lpIdent:	Points to the null terminated identifier
				string of the message.
Returns:	The pointer to lpReturn.
Comment:        The message can contain the following escape sequences:
		\a      Alert
		\b      Backspace
		\f      Formfeed
		\n      Newline
		\r      Carriage return
		\t      tab
		\v      Vertical tab
		\'      Single quote
		\"      Double quote
		\\      Backslash

Example:
		Code example:

		IntlGetMessage((LPSTR)szMess,
				sizeof szMess,
				"myini.ini",
				"Demotext");
		.
		.

		MYINI.INI example:

		[usa]
		Demotext=a few words.

		[swe]
		Demotext=ngra f ord.

		[ger]
		Demotext=Ein par Wrter.
