ホーム › Devices.Fax › FAX_PRINT_INFOW
FAX_PRINT_INFOW
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| SizeOfStruct | DWORD | 4 | +0 | +0 | この構造体のサイズをバイト単位で示すDWORD。 |
| DocName | LPWSTR | 8/4 | +8 | +4 | 印刷/送信するドキュメント名を指すワイド文字列。 |
| RecipientName | LPWSTR | 8/4 | +16 | +8 | 受信者名を指すワイド文字列。 |
| RecipientNumber | LPWSTR | 8/4 | +24 | +12 | 受信者のファクス番号を指すワイド文字列。 |
| SenderName | LPWSTR | 8/4 | +32 | +16 | 送信者名を指すワイド文字列。 |
| SenderCompany | LPWSTR | 8/4 | +40 | +20 | 送信者の会社名を指すワイド文字列。 |
| SenderDept | LPWSTR | 8/4 | +48 | +24 | 送信者の部署名を指すワイド文字列。 |
| SenderBillingCode | LPWSTR | 8/4 | +56 | +28 | 送信者の課金コードを指すワイド文字列。 |
| Reserved | LPWSTR | 8/4 | +64 | +32 | 予約フィールド。将来の拡張用でNULLにすべき。 |
| DrEmailAddress | LPWSTR | 8/4 | +72 | +36 | 配信レポート用メールアドレスを指すワイド文字列。 |
| OutputFileName | LPWSTR | 8/4 | +80 | +40 | 出力ファイル名を指すワイド文字列。 |
各言語での定義
#include <windows.h>
// FAX_PRINT_INFOW (x64 88 / x86 44 バイト)
typedef struct FAX_PRINT_INFOW {
DWORD SizeOfStruct;
LPWSTR DocName;
LPWSTR RecipientName;
LPWSTR RecipientNumber;
LPWSTR SenderName;
LPWSTR SenderCompany;
LPWSTR SenderDept;
LPWSTR SenderBillingCode;
LPWSTR Reserved;
LPWSTR DrEmailAddress;
LPWSTR OutputFileName;
} FAX_PRINT_INFOW;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct FAX_PRINT_INFOW
{
public uint SizeOfStruct;
public IntPtr DocName;
public IntPtr RecipientName;
public IntPtr RecipientNumber;
public IntPtr SenderName;
public IntPtr SenderCompany;
public IntPtr SenderDept;
public IntPtr SenderBillingCode;
public IntPtr Reserved;
public IntPtr DrEmailAddress;
public IntPtr OutputFileName;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure FAX_PRINT_INFOW
Public SizeOfStruct As UInteger
Public DocName As IntPtr
Public RecipientName As IntPtr
Public RecipientNumber As IntPtr
Public SenderName As IntPtr
Public SenderCompany As IntPtr
Public SenderDept As IntPtr
Public SenderBillingCode As IntPtr
Public Reserved As IntPtr
Public DrEmailAddress As IntPtr
Public OutputFileName As IntPtr
End Structureimport ctypes
from ctypes import wintypes
class FAX_PRINT_INFOW(ctypes.Structure):
_fields_ = [
("SizeOfStruct", wintypes.DWORD),
("DocName", ctypes.c_void_p),
("RecipientName", ctypes.c_void_p),
("RecipientNumber", ctypes.c_void_p),
("SenderName", ctypes.c_void_p),
("SenderCompany", ctypes.c_void_p),
("SenderDept", ctypes.c_void_p),
("SenderBillingCode", ctypes.c_void_p),
("Reserved", ctypes.c_void_p),
("DrEmailAddress", ctypes.c_void_p),
("OutputFileName", ctypes.c_void_p),
]#[repr(C)]
pub struct FAX_PRINT_INFOW {
pub SizeOfStruct: u32,
pub DocName: *mut core::ffi::c_void,
pub RecipientName: *mut core::ffi::c_void,
pub RecipientNumber: *mut core::ffi::c_void,
pub SenderName: *mut core::ffi::c_void,
pub SenderCompany: *mut core::ffi::c_void,
pub SenderDept: *mut core::ffi::c_void,
pub SenderBillingCode: *mut core::ffi::c_void,
pub Reserved: *mut core::ffi::c_void,
pub DrEmailAddress: *mut core::ffi::c_void,
pub OutputFileName: *mut core::ffi::c_void,
}import "golang.org/x/sys/windows"
type FAX_PRINT_INFOW struct {
SizeOfStruct uint32
DocName uintptr
RecipientName uintptr
RecipientNumber uintptr
SenderName uintptr
SenderCompany uintptr
SenderDept uintptr
SenderBillingCode uintptr
Reserved uintptr
DrEmailAddress uintptr
OutputFileName uintptr
}type
FAX_PRINT_INFOW = record
SizeOfStruct: DWORD;
DocName: Pointer;
RecipientName: Pointer;
RecipientNumber: Pointer;
SenderName: Pointer;
SenderCompany: Pointer;
SenderDept: Pointer;
SenderBillingCode: Pointer;
Reserved: Pointer;
DrEmailAddress: Pointer;
OutputFileName: Pointer;
end;const FAX_PRINT_INFOW = extern struct {
SizeOfStruct: u32,
DocName: ?*anyopaque,
RecipientName: ?*anyopaque,
RecipientNumber: ?*anyopaque,
SenderName: ?*anyopaque,
SenderCompany: ?*anyopaque,
SenderDept: ?*anyopaque,
SenderBillingCode: ?*anyopaque,
Reserved: ?*anyopaque,
DrEmailAddress: ?*anyopaque,
OutputFileName: ?*anyopaque,
};type
FAX_PRINT_INFOW {.bycopy.} = object
SizeOfStruct: uint32
DocName: pointer
RecipientName: pointer
RecipientNumber: pointer
SenderName: pointer
SenderCompany: pointer
SenderDept: pointer
SenderBillingCode: pointer
Reserved: pointer
DrEmailAddress: pointer
OutputFileName: pointerstruct FAX_PRINT_INFOW
{
uint SizeOfStruct;
void* DocName;
void* RecipientName;
void* RecipientNumber;
void* SenderName;
void* SenderCompany;
void* SenderDept;
void* SenderBillingCode;
void* Reserved;
void* DrEmailAddress;
void* OutputFileName;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; FAX_PRINT_INFOW サイズ: 44 バイト(x86)
dim st, 11 ; 4byte整数×11(構造体サイズ 44 / 4 切り上げ)
; SizeOfStruct : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; DocName : LPWSTR (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; RecipientName : LPWSTR (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; RecipientNumber : LPWSTR (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; SenderName : LPWSTR (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; SenderCompany : LPWSTR (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; SenderDept : LPWSTR (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; SenderBillingCode : LPWSTR (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; Reserved : LPWSTR (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; DrEmailAddress : LPWSTR (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; OutputFileName : LPWSTR (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; FAX_PRINT_INFOW サイズ: 88 バイト(x64)
dim st, 22 ; 4byte整数×22(構造体サイズ 88 / 4 切り上げ)
; SizeOfStruct : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; DocName : LPWSTR (+8, 8byte) qpoke st,8,値 / qpeek(st,8) ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; RecipientName : LPWSTR (+16, 8byte) qpoke st,16,値 / qpeek(st,16) ※IronHSPのみ。3.7/3.8は lpoke st,16,下位 : lpoke st,20,上位
; RecipientNumber : LPWSTR (+24, 8byte) qpoke st,24,値 / qpeek(st,24) ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; SenderName : LPWSTR (+32, 8byte) qpoke st,32,値 / qpeek(st,32) ※IronHSPのみ。3.7/3.8は lpoke st,32,下位 : lpoke st,36,上位
; SenderCompany : LPWSTR (+40, 8byte) qpoke st,40,値 / qpeek(st,40) ※IronHSPのみ。3.7/3.8は lpoke st,40,下位 : lpoke st,44,上位
; SenderDept : LPWSTR (+48, 8byte) qpoke st,48,値 / qpeek(st,48) ※IronHSPのみ。3.7/3.8は lpoke st,48,下位 : lpoke st,52,上位
; SenderBillingCode : LPWSTR (+56, 8byte) qpoke st,56,値 / qpeek(st,56) ※IronHSPのみ。3.7/3.8は lpoke st,56,下位 : lpoke st,60,上位
; Reserved : LPWSTR (+64, 8byte) qpoke st,64,値 / qpeek(st,64) ※IronHSPのみ。3.7/3.8は lpoke st,64,下位 : lpoke st,68,上位
; DrEmailAddress : LPWSTR (+72, 8byte) qpoke st,72,値 / qpeek(st,72) ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; OutputFileName : LPWSTR (+80, 8byte) qpoke st,80,値 / qpeek(st,80) ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global FAX_PRINT_INFOW
#field int SizeOfStruct
#field intptr DocName
#field intptr RecipientName
#field intptr RecipientNumber
#field intptr SenderName
#field intptr SenderCompany
#field intptr SenderDept
#field intptr SenderBillingCode
#field intptr Reserved
#field intptr DrEmailAddress
#field intptr OutputFileName
#endstruct
stdim st, FAX_PRINT_INFOW ; NSTRUCT 変数を確保
st->SizeOfStruct = 100
mes "SizeOfStruct=" + st->SizeOfStruct