ホーム › Networking.ActiveDirectory › DS_REPSYNCALL_UPDATEW
DS_REPSYNCALL_UPDATEW
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| event | DS_REPSYNCALL_EVENT | 4 | +0 | +0 | コールバックを発生させたイベント種別を示すDS_REPSYNCALL_EVENT。 |
| pErrInfo | DS_REPSYNCALL_ERRINFOW* | 8/4 | +8 | +4 | エラー発生時のDS_REPSYNCALL_ERRINFOWを指すポインタ。なければNULL。 |
| pSync | DS_REPSYNCALL_SYNCW* | 8/4 | +16 | +8 | 進行中の同期情報を表すDS_REPSYNCALL_SYNCWを指すポインタ。 |
各言語での定義
#include <windows.h>
// DS_REPSYNCALL_UPDATEW (x64 24 / x86 12 バイト)
typedef struct DS_REPSYNCALL_UPDATEW {
DS_REPSYNCALL_EVENT event;
DS_REPSYNCALL_ERRINFOW* pErrInfo;
DS_REPSYNCALL_SYNCW* pSync;
} DS_REPSYNCALL_UPDATEW;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DS_REPSYNCALL_UPDATEW
{
public int event;
public IntPtr pErrInfo;
public IntPtr pSync;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DS_REPSYNCALL_UPDATEW
Public event As Integer
Public pErrInfo As IntPtr
Public pSync As IntPtr
End Structureimport ctypes
from ctypes import wintypes
class DS_REPSYNCALL_UPDATEW(ctypes.Structure):
_fields_ = [
("event", ctypes.c_int),
("pErrInfo", ctypes.c_void_p),
("pSync", ctypes.c_void_p),
]#[repr(C)]
pub struct DS_REPSYNCALL_UPDATEW {
pub event: i32,
pub pErrInfo: *mut core::ffi::c_void,
pub pSync: *mut core::ffi::c_void,
}import "golang.org/x/sys/windows"
type DS_REPSYNCALL_UPDATEW struct {
event int32
pErrInfo uintptr
pSync uintptr
}type
DS_REPSYNCALL_UPDATEW = record
event: Integer;
pErrInfo: Pointer;
pSync: Pointer;
end;const DS_REPSYNCALL_UPDATEW = extern struct {
event: i32,
pErrInfo: ?*anyopaque,
pSync: ?*anyopaque,
};type
DS_REPSYNCALL_UPDATEW {.bycopy.} = object
event: int32
pErrInfo: pointer
pSync: pointerstruct DS_REPSYNCALL_UPDATEW
{
int event;
void* pErrInfo;
void* pSync;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; DS_REPSYNCALL_UPDATEW サイズ: 12 バイト(x86)
dim st, 3 ; 4byte整数×3(構造体サイズ 12 / 4 切り上げ)
; event : DS_REPSYNCALL_EVENT (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; pErrInfo : DS_REPSYNCALL_ERRINFOW* (+4, 4byte) varptr(st)+4 を基点に操作(4byte:入れ子/配列)
; pSync : DS_REPSYNCALL_SYNCW* (+8, 4byte) varptr(st)+8 を基点に操作(4byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; DS_REPSYNCALL_UPDATEW サイズ: 24 バイト(x64)
dim st, 6 ; 4byte整数×6(構造体サイズ 24 / 4 切り上げ)
; event : DS_REPSYNCALL_EVENT (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; pErrInfo : DS_REPSYNCALL_ERRINFOW* (+8, 8byte) varptr(st)+8 を基点に操作(8byte:入れ子/配列)
; pSync : DS_REPSYNCALL_SYNCW* (+16, 8byte) varptr(st)+16 を基点に操作(8byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global DS_REPSYNCALL_UPDATEW
#field int event
#field intptr pErrInfo
#field intptr pSync
#endstruct
stdim st, DS_REPSYNCALL_UPDATEW ; NSTRUCT 変数を確保
st->event = 100
mes "event=" + st->event