UDF > WinAPIEx > Miscellaneous > Struct >


_WinAPI_UnionStruct

Crée une structure à partir de deux structures

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

Paramètres

$tStruct1 La structure qui contient les premières données source.
$tStruct2 La structure qui contient les secondes données source.
$sStruct [optionnel] La chaîne représentant la structure finale (la même que pour la fonction DllStructCreate()).

Valeur de retour

Succès: Retourne la structure "byte[n]" qui contient l'union des données de $tStruct1 et $tStruct2.
Échec: Définit @error <> 0.

Remarque

Important, vous devez prendre en compte les alignements des structures. Par exemple, "byte" & "dword" n'est pas équivalent à "byte;dword", mais équivalent à "align 1;byte;dword".

Exemple

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

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

Local $tStruct2 = DllStructCreate('byte[4]')
_WinAPI_FillMemory(DllStructGetPtr($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)