# Function Reference

# _WinAPI_UnionStruct

Creates the structure of two structures

#include <WinAPIMisc.au3>
_WinAPI_UnionStruct ( $tStruct1, $tStruct2 [, $sStruct = ''] )

## Parameters

$tStruct1 | The structure that contains the first source data.
$tStruct2 | The structure that contains the second source data.
$sStruct | [optional] The string representing the final structure (same as for the DllStructCreate() function).

## Return Value

Success: | "byte[n]" structure that contains the union data of the $tStruct1 and $tStruct2.
Failure: | Sets the @error flag to non-zero.

## Remarks

Important, you have to take into account the alignments of the structures. For example, "byte" & "dword" is
not equivalent to "byte;dword", but equivalent to "align 1;byte;dword".

## Example

    #include <WinAPIMem.au3>
    #include <WinAPIMisc.au3>

    _Example()

    Func _Example()
        Local $tStruct1 = DllStructCreate('byte[4]')
        _WinAPI_FillMemory($tStruct1, 4, 0xAA)

        Local $tStruct2 = DllStructCreate('byte[4]')
        _WinAPI_FillMemory($tStruct2, 4, 0xDD)

        Local $tStruct3 = _WinAPI_UnionStruct($tStruct1, $tStruct2)

        ConsoleWrite('First:  ' & DllStructGetData($tStruct1, 1) & @CRLF)
        ConsoleWrite('Second: ' & DllStructGetData($tStruct2, 1) & @CRLF)
        ConsoleWrite('Union:  ' & DllStructGetData($tStruct3, 1) & @CRLF)
    EndFunc   ;==>_Example