構造体の要素のデータを返します。
DllStructGetData ( Struct, Element [, index ] )
パラメータ
Struct | DllStructCreateが返す構造体 |
Element | 構造体のアクセスしたい要素。1 始まり。またはDllStructCreateで定義された要素 |
index | [オプション] 要素が配列の場合、1始まりのインデックスで取得する要素を指定します。 省略したりDefaultキーワードを使用した場合、配列全体が取得されます(すばやく文字列を取得するのに便利です)。 非配列の要素には使ってはいけません。 |
返し値
成功 | 構造体の要素内のデータ。 |
失敗 | 0 |
@Error: | 0 = エラーなし。 |
1 = 構造体がDllStructCreateによって返された正常な構造体ではない。 | |
2 = Elementの値が範囲外。 | |
3 = indexが構造体の範囲外。 | |
4 = Elementのデータ型が不明。 | |
5 = index <= 0. |
注意
要素がchar[n]でindexが省略された場合、返されるデータはStringです。
関連
DllStructCreate, DllStructSetData
例
$p = DllStructCreate("dword dwOSVersionInfoSize;dword dwMajorVersion;dword dwMinorVersion;dword dwBuildNumber;dword dwPlatformId;char szCSDVersion[128]")
;p->dwOSVersionInfoSize = sizeof(OSVERSIONINFO) だと考えてください。
DllStructSetData($p, "dwOSVersionInfoSize", DllStructGetSize($p))
;DllCall 実行
$ret = DllCall("kernel32.dll","int","GetVersionEx","ptr",DllStructGetPtr($p))
if Not $ret[0] Then
MsgBox(0,"DllCall Error","DllCall Failed")
exit
EndIf
;返し値を取得
$major = DllStructGetData($p,"dwMajorVersion")
$minor = DllStructGetData($p,"dwMinorVersion")
$build = DllStructGetData($p,"dwBuildNumber")
$platform = DllStructGetData($p,"dwPlatformId")
$version = DllStructGetData($p,"szCSDVersion")
;構造体を解放
$p =0
msgbox(0,"","Major: " & $major & @CRLF & _
"Minor: " & $minor & @CRLF & _
"Build: " & $build & @CRLF & _
"Platform ID: " & $platform & @CRLF & _
"Version: " & $version)