Alias (Name)

Clause of the KeyPgSubSub and KeyPgFunctionFunction statements that provides an alternate 
internal name.

Syntax
	[KeyPgDeclareDeclare] { KeyPgSubSub | KeyPgFunctionFunction } usablename Alias "alternatename" (...)

Usage
	declare sub usablename Alias "alternatename" ( ... )
		or
	declare function usablename Alias "alternatename" ( ... )
		or
	sub usablename Alias "alternatename" ( ... )
		...
	end sub
		or
	function usablename Alias "alternatename" ( ... )
		...
	end function
		or
	type typename Alias "alternatename" ( ... )
		...
	end type

Description
	Alias gives an alternate name to a procedure.  This alternate name 
	cannot be used within the program to call the procedure, but it is 
	visible (if the function is not private) to the linker when linking with 
	code written in other languages.

	Alias is commonly used for procedures in libraries written in other 
	languages when such procedure names are valid in the other language but 
	invalid in BASIC.  When using Alias with KeyPgDeclareDeclare, only the alternate 
	name is used by the linker.

	Differently from normal procedure names, Alias does not change the case 
	of the alternate name, so it is useful when external code requires an 
	exported function with a particular name or with a particular case.

	Alias can be used to specify an alternate name for KeyPgTypeType definitions.

	Alias can be used as a modifier that specifies an alternate name 
	mangling for procedure parameters.  See KeyPgAliasModifierAlias (Modifier)

Example

If there is a sub (without parameter) called xClearScreen in an external 
library and you want to reference it with the name ClearVideoScreen, here 
is sample code to do so:
	Declare Sub ClearVideoScreen Alias "xClearScreen" ()

If there is a function (with parameters and return value) called 
MyFunctioninLib in an external library and you want to reference it with 
the name myfunction, here is sample code to do so:
	Declare Function myfunction Alias "MyFunctioninLib" (ByVal As Long, ByVal As Long, ByVal As ZString Ptr) As Integer

A procedure meant to be used by external C code, exported as MyExportedProc
:
	Function MultiplyByFive cdecl Alias "MyExportedProc" (ByVal Parameter As Integer) As Integer Export
	  Return Parameter * 5
	End Function

Differences from QB
	* In QB, Alias only worked with KeyPgDeclareDeclare.

See also
	* KeyPgDeclareDeclare
	* KeyPgExportExport
	* KeyPgTypeAliasType (Alias)
	* KeyPgAliasModifierAlias (Modifier)

