Funktionsreferenz

DllStructGetData

Gibt die Daten eines Elements der Struktur zurück.

DllStructGetData ( Struct, Element [, index ] )

 

Parameter

Struct Die Struktur zurückgegeben aus DllStructCreate.
Element Das Element auf das man zugreifen möchte, beginnend bei 1 oder dem Elementnamen wie in DllStructCreate festgelegt.
index [optional] Befinden sich die Elemente in einem Array, so legt dies den 1-basierenden Index des zu erneuernenden Arrays fest. Falls dies nicht angegeben wird oder das Schlüsselwort Default verwendet wird, so wird das komplette Array erneuert (nützlich für String die schnell erneuert werden sollten). Nicht für nicht-Array Elemente.
*char[n], byte[n] und ubyte[n] geben alle Daten der Elemente zurück wenn der Index ausgelassen wird.

 

Rückgabewert

Erfolg: Daten in dem Element der Struktur.
Fehler: 0.
@Error: 0 = Kein Fehler.
1 = Struct ist keine korrekte Struktur aus DllStructCreate zurückgegeben.
2 = Element-Wert nicht im zulässigen Bereich.
3 = Index würde ausserhalb der Struktur sein.
4 = Element Datentyp unbekannt
5 = Index <= 0.

 

Bemerkungen

Wenn das Element char[n] ist und der Index ausgelassen wird, ist der zurückgegebene Datentyp ein Zeichenstring,
Wenn das Element byte[n] ist oder ubyte[n] und der Index wird ausgelassen, ist der zurückgegebene Datentyp binär ,
andernfalls ist der zurückgegebene Datentyp immer eine Zahl.

 

Verwandte Funktionen

DllStructCreate, DllStructSetData

 

Beispiel


$p  = DllStructCreate("dword dwOSVersionInfoSize;dword dwMajorVersion;dword dwMinorVersion;dword dwBuildNumber;dword dwPlatformId;char szCSDVersion[128]")

; Strukturgrösse eintragen (p->dwOSVersionInfoSize = sizeof(OSVERSIONINFO))
DllStructSetData($p, "dwOSVersionInfoSize", DllStructGetSize($p))

; Die Dll-Funktion aufrufen
$ret = DllCall("kernel32.dll","int","GetVersionEx","ptr",DllStructGetPtr($p))

if Not $ret[0] Then
    MsgBox(0,"DllCall Fehler","DllCall fehlgeschlagen")
    exit
EndIf

; Lesen der zurückgegebenen Werte
$major      = DllStructGetData($p,"dwMajorVersion")
$minor      = DllStructGetData($p,"dwMinorVersion")
$build      = DllStructGetData($p,"dwBuildNumber")
$platform   = DllStructGetData($p,"dwPlatformId")
$version    = DllStructGetData($p,"szCSDVersion")

; Struktur freigeben
$p =0

msgbox(0,"","Major: " & $major & @CRLF & _
            "Minor: " & $minor & @CRLF & _
            "Build: " & $build & @CRLF & _
            "Platform ID: " & $platform & @CRLF & _
            "Version: " & $version)