ホーム › Graphics.Printing › BranchOfficeJobDataError
BranchOfficeJobDataError
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| LastError | DWORD | 4 | +0 | +0 | 発生した最後のエラーコード(Win32エラー)。 |
| pDocumentName | LPWSTR | 8/4 | +8 | +4 | ドキュメント名を指すUnicode文字列。 |
| pUserName | LPWSTR | 8/4 | +16 | +8 | ジョブを送信したユーザー名を指すUnicode文字列。 |
| pPrinterName | LPWSTR | 8/4 | +24 | +12 | 対象プリンター名を指すUnicode文字列。 |
| pDataType | LPWSTR | 8/4 | +32 | +16 | ジョブのデータ型(RAW等)を指すUnicode文字列。 |
| TotalSize | LONGLONG | 8 | +40 | +24 | ジョブの総サイズをバイト単位で示す64ビット値。 |
| PrintedSize | LONGLONG | 8 | +48 | +32 | 印刷済みのサイズをバイト単位で示す64ビット値。 |
| TotalPages | DWORD | 4 | +56 | +40 | ドキュメントの総ページ数。 |
| PrintedPages | DWORD | 4 | +60 | +44 | 印刷済みのページ数。 |
| pMachineName | LPWSTR | 8/4 | +64 | +48 | ジョブを送信したマシン名を指すUnicode文字列。 |
| pJobError | LPWSTR | 8/4 | +72 | +52 | ジョブエラーを示す文字列を指すUnicode文字列。 |
| pErrorDescription | LPWSTR | 8/4 | +80 | +56 | エラーの詳細説明を指すUnicode文字列。 |
各言語での定義
#include <windows.h>
// BranchOfficeJobDataError (x64 88 / x86 64 バイト)
typedef struct BranchOfficeJobDataError {
DWORD LastError;
LPWSTR pDocumentName;
LPWSTR pUserName;
LPWSTR pPrinterName;
LPWSTR pDataType;
LONGLONG TotalSize;
LONGLONG PrintedSize;
DWORD TotalPages;
DWORD PrintedPages;
LPWSTR pMachineName;
LPWSTR pJobError;
LPWSTR pErrorDescription;
} BranchOfficeJobDataError;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct BranchOfficeJobDataError
{
public uint LastError;
public IntPtr pDocumentName;
public IntPtr pUserName;
public IntPtr pPrinterName;
public IntPtr pDataType;
public long TotalSize;
public long PrintedSize;
public uint TotalPages;
public uint PrintedPages;
public IntPtr pMachineName;
public IntPtr pJobError;
public IntPtr pErrorDescription;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure BranchOfficeJobDataError
Public LastError As UInteger
Public pDocumentName As IntPtr
Public pUserName As IntPtr
Public pPrinterName As IntPtr
Public pDataType As IntPtr
Public TotalSize As Long
Public PrintedSize As Long
Public TotalPages As UInteger
Public PrintedPages As UInteger
Public pMachineName As IntPtr
Public pJobError As IntPtr
Public pErrorDescription As IntPtr
End Structureimport ctypes
from ctypes import wintypes
class BranchOfficeJobDataError(ctypes.Structure):
_fields_ = [
("LastError", wintypes.DWORD),
("pDocumentName", ctypes.c_void_p),
("pUserName", ctypes.c_void_p),
("pPrinterName", ctypes.c_void_p),
("pDataType", ctypes.c_void_p),
("TotalSize", ctypes.c_longlong),
("PrintedSize", ctypes.c_longlong),
("TotalPages", wintypes.DWORD),
("PrintedPages", wintypes.DWORD),
("pMachineName", ctypes.c_void_p),
("pJobError", ctypes.c_void_p),
("pErrorDescription", ctypes.c_void_p),
]#[repr(C)]
pub struct BranchOfficeJobDataError {
pub LastError: u32,
pub pDocumentName: *mut core::ffi::c_void,
pub pUserName: *mut core::ffi::c_void,
pub pPrinterName: *mut core::ffi::c_void,
pub pDataType: *mut core::ffi::c_void,
pub TotalSize: i64,
pub PrintedSize: i64,
pub TotalPages: u32,
pub PrintedPages: u32,
pub pMachineName: *mut core::ffi::c_void,
pub pJobError: *mut core::ffi::c_void,
pub pErrorDescription: *mut core::ffi::c_void,
}import "golang.org/x/sys/windows"
type BranchOfficeJobDataError struct {
LastError uint32
pDocumentName uintptr
pUserName uintptr
pPrinterName uintptr
pDataType uintptr
TotalSize int64
PrintedSize int64
TotalPages uint32
PrintedPages uint32
pMachineName uintptr
pJobError uintptr
pErrorDescription uintptr
}type
BranchOfficeJobDataError = record
LastError: DWORD;
pDocumentName: Pointer;
pUserName: Pointer;
pPrinterName: Pointer;
pDataType: Pointer;
TotalSize: Int64;
PrintedSize: Int64;
TotalPages: DWORD;
PrintedPages: DWORD;
pMachineName: Pointer;
pJobError: Pointer;
pErrorDescription: Pointer;
end;const BranchOfficeJobDataError = extern struct {
LastError: u32,
pDocumentName: ?*anyopaque,
pUserName: ?*anyopaque,
pPrinterName: ?*anyopaque,
pDataType: ?*anyopaque,
TotalSize: i64,
PrintedSize: i64,
TotalPages: u32,
PrintedPages: u32,
pMachineName: ?*anyopaque,
pJobError: ?*anyopaque,
pErrorDescription: ?*anyopaque,
};type
BranchOfficeJobDataError {.bycopy.} = object
LastError: uint32
pDocumentName: pointer
pUserName: pointer
pPrinterName: pointer
pDataType: pointer
TotalSize: int64
PrintedSize: int64
TotalPages: uint32
PrintedPages: uint32
pMachineName: pointer
pJobError: pointer
pErrorDescription: pointerstruct BranchOfficeJobDataError
{
uint LastError;
void* pDocumentName;
void* pUserName;
void* pPrinterName;
void* pDataType;
long TotalSize;
long PrintedSize;
uint TotalPages;
uint PrintedPages;
void* pMachineName;
void* pJobError;
void* pErrorDescription;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; BranchOfficeJobDataError サイズ: 64 バイト(x86)
dim st, 16 ; 4byte整数×16(構造体サイズ 64 / 4 切り上げ)
; LastError : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; pDocumentName : LPWSTR (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; pUserName : LPWSTR (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; pPrinterName : LPWSTR (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; pDataType : LPWSTR (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; TotalSize : LONGLONG (+24, 8byte) qpoke st,24,値 / qpeek(st,24) ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; PrintedSize : LONGLONG (+32, 8byte) qpoke st,32,値 / qpeek(st,32) ※IronHSPのみ。3.7/3.8は lpoke st,32,下位 : lpoke st,36,上位
; TotalPages : DWORD (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; PrintedPages : DWORD (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; pMachineName : LPWSTR (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; pJobError : LPWSTR (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; pErrorDescription : LPWSTR (+56, 4byte) st.14 = 値 / 値 = st.14 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; BranchOfficeJobDataError サイズ: 88 バイト(x64)
dim st, 22 ; 4byte整数×22(構造体サイズ 88 / 4 切り上げ)
; LastError : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; pDocumentName : LPWSTR (+8, 8byte) qpoke st,8,値 / qpeek(st,8) ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; pUserName : LPWSTR (+16, 8byte) qpoke st,16,値 / qpeek(st,16) ※IronHSPのみ。3.7/3.8は lpoke st,16,下位 : lpoke st,20,上位
; pPrinterName : LPWSTR (+24, 8byte) qpoke st,24,値 / qpeek(st,24) ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; pDataType : LPWSTR (+32, 8byte) qpoke st,32,値 / qpeek(st,32) ※IronHSPのみ。3.7/3.8は lpoke st,32,下位 : lpoke st,36,上位
; TotalSize : LONGLONG (+40, 8byte) qpoke st,40,値 / qpeek(st,40) ※IronHSPのみ。3.7/3.8は lpoke st,40,下位 : lpoke st,44,上位
; PrintedSize : LONGLONG (+48, 8byte) qpoke st,48,値 / qpeek(st,48) ※IronHSPのみ。3.7/3.8は lpoke st,48,下位 : lpoke st,52,上位
; TotalPages : DWORD (+56, 4byte) st.14 = 値 / 値 = st.14 (lpoke/lpeek も可)
; PrintedPages : DWORD (+60, 4byte) st.15 = 値 / 値 = st.15 (lpoke/lpeek も可)
; pMachineName : LPWSTR (+64, 8byte) qpoke st,64,値 / qpeek(st,64) ※IronHSPのみ。3.7/3.8は lpoke st,64,下位 : lpoke st,68,上位
; pJobError : LPWSTR (+72, 8byte) qpoke st,72,値 / qpeek(st,72) ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; pErrorDescription : 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 BranchOfficeJobDataError
#field int LastError
#field intptr pDocumentName
#field intptr pUserName
#field intptr pPrinterName
#field intptr pDataType
#field int64 TotalSize
#field int64 PrintedSize
#field int TotalPages
#field int PrintedPages
#field intptr pMachineName
#field intptr pJobError
#field intptr pErrorDescription
#endstruct
stdim st, BranchOfficeJobDataError ; NSTRUCT 変数を確保
st->LastError = 100
mes "LastError=" + st->LastError