###Function###
DllStructCreate
###Description###
Creates a C/C++ style structure to be used in DllCall.

###Syntax###
DllStructCreate ( "Struct" [,Pointer] )


###Parameters###
@@ParamTable@@
"Struct"
	A string representing the structure to create (See Remarks).
Pointer
	If supplied the struct will not allocate memory but use the pointer supplied.
@@End@@

###ReturnValue###
@@ReturnTable@@
Success:	A variable for use with DllStruct calls.
Failure:	0.
@Error:	0 = No Error.
	1 = Variable passed to DllStructCreate was not a string.
	2 = There is an unknown Data Type in the string passed.
	3 = Failed to allocate the memory needed for the struct, or Pointer = 0.
	4 = Error allocating memory for the passed string.
	
@@End@@


###Remarks###
Each data type must be separated by a semi-colon ';'.  Create arrays by adding '[size]' after the data type.
DllStructCreate("int;char[128]")

@@ParamTable@@
<b>Type</b>
	<b>Details</b>
byte
	8bit(1byte) signed char
ubyte
	8bit(1byte) unsigned char
char
	8bit(1byte) ASCII char
short
	16bit(2bytes) signed integer
ushort
	16bit(2bytes) unsigned integer
int
	32bit(4bytes) signed integer
uint
	32bit(4bytes) unsigned integer
dword
	32bit(4bytes) signed integer
udword
	32bit(4bytes) unsigned integer
ptr
	32bit(4bytes) integer
float
	32bit(4bytes) floating point
double
	64bit(8bytes) floating point
int64
	64bit(8bytes) signed integer
uint64
	64bit(8bytes) unsigned integer
@@End@@

To release allocated memory just reset the returned variable to 0.


###Related###
DllCall, DllStructCreate, DllStructGetData, DllStructSetData, DllStructGetPtr


###Example###
@@IncludeExample@@
