Win32 API 日本語リファレンス
ホームGraphics.Printing › BranchOfficeJobDataError

BranchOfficeJobDataError

構造体
サイズx64: 88 バイト / x86: 64 バイト

サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。

フィールド

フィールドサイズx64x86説明
LastErrorDWORD4+0+0発生した最後のエラーコード(Win32エラー)。
pDocumentNameLPWSTR8/4+8+4ドキュメント名を指すUnicode文字列。
pUserNameLPWSTR8/4+16+8ジョブを送信したユーザー名を指すUnicode文字列。
pPrinterNameLPWSTR8/4+24+12対象プリンター名を指すUnicode文字列。
pDataTypeLPWSTR8/4+32+16ジョブのデータ型(RAW等)を指すUnicode文字列。
TotalSizeLONGLONG8+40+24ジョブの総サイズをバイト単位で示す64ビット値。
PrintedSizeLONGLONG8+48+32印刷済みのサイズをバイト単位で示す64ビット値。
TotalPagesDWORD4+56+40ドキュメントの総ページ数。
PrintedPagesDWORD4+60+44印刷済みのページ数。
pMachineNameLPWSTR8/4+64+48ジョブを送信したマシン名を指すUnicode文字列。
pJobErrorLPWSTR8/4+72+52ジョブエラーを示す文字列を指すUnicode文字列。
pErrorDescriptionLPWSTR8/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 Structure
import 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: pointer
struct 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