ホーム › Devices.Fax › FAX_CONFIGURATIONA
FAX_CONFIGURATIONA
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| SizeOfStruct | DWORD | 4 | +0 | +0 | この構造体のサイズをバイト単位で示すDWORD。 |
| Retries | DWORD | 4 | +4 | +4 | 送信失敗時の再試行回数を示すDWORD。 |
| RetryDelay | DWORD | 4 | +8 | +8 | 再試行までの待機時間を分単位で示すDWORD。 |
| DirtyDays | DWORD | 4 | +12 | +12 | 未送信ジョブをキューに保持する日数を示すDWORD。 |
| Branding | BOOL | 4 | +16 | +16 | 送信ファクスにブランディング(ヘッダ情報)を付与するかを示すBOOL。 |
| UseDeviceTsid | BOOL | 4 | +20 | +20 | デバイス側のTSIDを使用するかを示すBOOL。 |
| ServerCp | BOOL | 4 | +24 | +24 | サーバ側のカバーページを使用するかを示すBOOL。 |
| PauseServerQueue | BOOL | 4 | +28 | +28 | サーバの送信キューを一時停止するかを示すBOOL。 |
| StartCheapTime | FAX_TIME | 4 | +32 | +32 | 割安時間帯(低料金)の開始時刻を示すFAX_TIME。 |
| StopCheapTime | FAX_TIME | 4 | +36 | +36 | 割安時間帯(低料金)の終了時刻を示すFAX_TIME。 |
| ArchiveOutgoingFaxes | BOOL | 4 | +40 | +40 | 送信済みファクスをアーカイブするかを示すBOOL。 |
| ArchiveDirectory | LPSTR | 8/4 | +48 | +44 | アーカイブ先ディレクトリのパスを指すANSI文字列。 |
| Reserved | LPSTR | 8/4 | +56 | +48 | 予約フィールド。将来の拡張用でNULLにすべき。 |
各言語での定義
#include <windows.h>
// FAX_TIME (x64 4 / x86 4 バイト)
typedef struct FAX_TIME {
WORD Hour;
WORD Minute;
} FAX_TIME;
// FAX_CONFIGURATIONA (x64 64 / x86 52 バイト)
typedef struct FAX_CONFIGURATIONA {
DWORD SizeOfStruct;
DWORD Retries;
DWORD RetryDelay;
DWORD DirtyDays;
BOOL Branding;
BOOL UseDeviceTsid;
BOOL ServerCp;
BOOL PauseServerQueue;
FAX_TIME StartCheapTime;
FAX_TIME StopCheapTime;
BOOL ArchiveOutgoingFaxes;
LPSTR ArchiveDirectory;
LPSTR Reserved;
} FAX_CONFIGURATIONA;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct FAX_TIME
{
public ushort Hour;
public ushort Minute;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct FAX_CONFIGURATIONA
{
public uint SizeOfStruct;
public uint Retries;
public uint RetryDelay;
public uint DirtyDays;
[MarshalAs(UnmanagedType.Bool)] public bool Branding;
[MarshalAs(UnmanagedType.Bool)] public bool UseDeviceTsid;
[MarshalAs(UnmanagedType.Bool)] public bool ServerCp;
[MarshalAs(UnmanagedType.Bool)] public bool PauseServerQueue;
public FAX_TIME StartCheapTime;
public FAX_TIME StopCheapTime;
[MarshalAs(UnmanagedType.Bool)] public bool ArchiveOutgoingFaxes;
public IntPtr ArchiveDirectory;
public IntPtr Reserved;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure FAX_TIME
Public Hour As UShort
Public Minute As UShort
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure FAX_CONFIGURATIONA
Public SizeOfStruct As UInteger
Public Retries As UInteger
Public RetryDelay As UInteger
Public DirtyDays As UInteger
<MarshalAs(UnmanagedType.Bool)> Public Branding As Boolean
<MarshalAs(UnmanagedType.Bool)> Public UseDeviceTsid As Boolean
<MarshalAs(UnmanagedType.Bool)> Public ServerCp As Boolean
<MarshalAs(UnmanagedType.Bool)> Public PauseServerQueue As Boolean
Public StartCheapTime As FAX_TIME
Public StopCheapTime As FAX_TIME
<MarshalAs(UnmanagedType.Bool)> Public ArchiveOutgoingFaxes As Boolean
Public ArchiveDirectory As IntPtr
Public Reserved As IntPtr
End Structureimport ctypes
from ctypes import wintypes
class FAX_TIME(ctypes.Structure):
_fields_ = [
("Hour", ctypes.c_ushort),
("Minute", ctypes.c_ushort),
]
class FAX_CONFIGURATIONA(ctypes.Structure):
_fields_ = [
("SizeOfStruct", wintypes.DWORD),
("Retries", wintypes.DWORD),
("RetryDelay", wintypes.DWORD),
("DirtyDays", wintypes.DWORD),
("Branding", wintypes.BOOL),
("UseDeviceTsid", wintypes.BOOL),
("ServerCp", wintypes.BOOL),
("PauseServerQueue", wintypes.BOOL),
("StartCheapTime", FAX_TIME),
("StopCheapTime", FAX_TIME),
("ArchiveOutgoingFaxes", wintypes.BOOL),
("ArchiveDirectory", ctypes.c_void_p),
("Reserved", ctypes.c_void_p),
]#[repr(C)]
pub struct FAX_TIME {
pub Hour: u16,
pub Minute: u16,
}
#[repr(C)]
pub struct FAX_CONFIGURATIONA {
pub SizeOfStruct: u32,
pub Retries: u32,
pub RetryDelay: u32,
pub DirtyDays: u32,
pub Branding: i32,
pub UseDeviceTsid: i32,
pub ServerCp: i32,
pub PauseServerQueue: i32,
pub StartCheapTime: FAX_TIME,
pub StopCheapTime: FAX_TIME,
pub ArchiveOutgoingFaxes: i32,
pub ArchiveDirectory: *mut core::ffi::c_void,
pub Reserved: *mut core::ffi::c_void,
}import "golang.org/x/sys/windows"
type FAX_TIME struct {
Hour uint16
Minute uint16
}
type FAX_CONFIGURATIONA struct {
SizeOfStruct uint32
Retries uint32
RetryDelay uint32
DirtyDays uint32
Branding int32
UseDeviceTsid int32
ServerCp int32
PauseServerQueue int32
StartCheapTime FAX_TIME
StopCheapTime FAX_TIME
ArchiveOutgoingFaxes int32
ArchiveDirectory uintptr
Reserved uintptr
}type
FAX_TIME = record
Hour: Word;
Minute: Word;
end;
FAX_CONFIGURATIONA = record
SizeOfStruct: DWORD;
Retries: DWORD;
RetryDelay: DWORD;
DirtyDays: DWORD;
Branding: BOOL;
UseDeviceTsid: BOOL;
ServerCp: BOOL;
PauseServerQueue: BOOL;
StartCheapTime: FAX_TIME;
StopCheapTime: FAX_TIME;
ArchiveOutgoingFaxes: BOOL;
ArchiveDirectory: Pointer;
Reserved: Pointer;
end;const FAX_TIME = extern struct {
Hour: u16,
Minute: u16,
};
const FAX_CONFIGURATIONA = extern struct {
SizeOfStruct: u32,
Retries: u32,
RetryDelay: u32,
DirtyDays: u32,
Branding: i32,
UseDeviceTsid: i32,
ServerCp: i32,
PauseServerQueue: i32,
StartCheapTime: FAX_TIME,
StopCheapTime: FAX_TIME,
ArchiveOutgoingFaxes: i32,
ArchiveDirectory: ?*anyopaque,
Reserved: ?*anyopaque,
};type
FAX_TIME {.bycopy.} = object
Hour: uint16
Minute: uint16
FAX_CONFIGURATIONA {.bycopy.} = object
SizeOfStruct: uint32
Retries: uint32
RetryDelay: uint32
DirtyDays: uint32
Branding: int32
UseDeviceTsid: int32
ServerCp: int32
PauseServerQueue: int32
StartCheapTime: FAX_TIME
StopCheapTime: FAX_TIME
ArchiveOutgoingFaxes: int32
ArchiveDirectory: pointer
Reserved: pointerstruct FAX_TIME
{
ushort Hour;
ushort Minute;
}
struct FAX_CONFIGURATIONA
{
uint SizeOfStruct;
uint Retries;
uint RetryDelay;
uint DirtyDays;
int Branding;
int UseDeviceTsid;
int ServerCp;
int PauseServerQueue;
FAX_TIME StartCheapTime;
FAX_TIME StopCheapTime;
int ArchiveOutgoingFaxes;
void* ArchiveDirectory;
void* Reserved;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; FAX_CONFIGURATIONA サイズ: 52 バイト(x86)
dim st, 13 ; 4byte整数×13(構造体サイズ 52 / 4 切り上げ)
; SizeOfStruct : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; Retries : DWORD (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; RetryDelay : DWORD (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; DirtyDays : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; Branding : BOOL (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; UseDeviceTsid : BOOL (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; ServerCp : BOOL (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; PauseServerQueue : BOOL (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; StartCheapTime : FAX_TIME (+32, 4byte) varptr(st)+32 を基点に操作(4byte:入れ子/配列)
; StopCheapTime : FAX_TIME (+36, 4byte) varptr(st)+36 を基点に操作(4byte:入れ子/配列)
; ArchiveOutgoingFaxes : BOOL (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; ArchiveDirectory : LPSTR (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; Reserved : LPSTR (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; FAX_CONFIGURATIONA サイズ: 64 バイト(x64)
dim st, 16 ; 4byte整数×16(構造体サイズ 64 / 4 切り上げ)
; SizeOfStruct : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; Retries : DWORD (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; RetryDelay : DWORD (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; DirtyDays : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; Branding : BOOL (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; UseDeviceTsid : BOOL (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; ServerCp : BOOL (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; PauseServerQueue : BOOL (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; StartCheapTime : FAX_TIME (+32, 4byte) varptr(st)+32 を基点に操作(4byte:入れ子/配列)
; StopCheapTime : FAX_TIME (+36, 4byte) varptr(st)+36 を基点に操作(4byte:入れ子/配列)
; ArchiveOutgoingFaxes : BOOL (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; ArchiveDirectory : LPSTR (+48, 8byte) qpoke st,48,値 / qpeek(st,48) ※IronHSPのみ。3.7/3.8は lpoke st,48,下位 : lpoke st,52,上位
; Reserved : LPSTR (+56, 8byte) qpoke st,56,値 / qpeek(st,56) ※IronHSPのみ。3.7/3.8は lpoke st,56,下位 : lpoke st,60,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
; ※GUID・入れ子構造体はデフォルト型でないため、依存する #defstruct を先に定義(下記に同梱)。
#defstruct global FAX_TIME
#field short Hour
#field short Minute
#endstruct
#defstruct global FAX_CONFIGURATIONA
#field int SizeOfStruct
#field int Retries
#field int RetryDelay
#field int DirtyDays
#field bool Branding
#field bool UseDeviceTsid
#field bool ServerCp
#field bool PauseServerQueue
#field FAX_TIME StartCheapTime
#field FAX_TIME StopCheapTime
#field bool ArchiveOutgoingFaxes
#field intptr ArchiveDirectory
#field intptr Reserved
#endstruct
stdim st, FAX_CONFIGURATIONA ; NSTRUCT 変数を確保
st->SizeOfStruct = 100
mes "SizeOfStruct=" + st->SizeOfStruct