ホーム › Graphics.Printing › PRINTPROVIDOR
PRINTPROVIDOR
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| fpOpenPrinter | INT_PTR | 8/4 | +0 | +0 | OpenPrinterを実装するプリントプロバイダー関数へのポインター。 |
| fpSetJob | INT_PTR | 8/4 | +8 | +4 | SetJobを実装する関数へのポインター。 |
| fpGetJob | INT_PTR | 8/4 | +16 | +8 | GetJobを実装する関数へのポインター。 |
| fpEnumJobs | INT_PTR | 8/4 | +24 | +12 | EnumJobsを実装する関数へのポインター。 |
| fpAddPrinter | INT_PTR | 8/4 | +32 | +16 | AddPrinterを実装する関数へのポインター。 |
| fpDeletePrinter | INT_PTR | 8/4 | +40 | +20 | DeletePrinterを実装する関数へのポインター。 |
| fpSetPrinter | INT_PTR | 8/4 | +48 | +24 | SetPrinterを実装する関数へのポインター。 |
| fpGetPrinter | INT_PTR | 8/4 | +56 | +28 | GetPrinterを実装する関数へのポインター。 |
| fpEnumPrinters | INT_PTR | 8/4 | +64 | +32 | EnumPrintersを実装する関数へのポインター。 |
| fpAddPrinterDriver | INT_PTR | 8/4 | +72 | +36 | AddPrinterDriverを実装する関数へのポインター。 |
| fpEnumPrinterDrivers | INT_PTR | 8/4 | +80 | +40 | EnumPrinterDriversを実装する関数へのポインター。 |
| fpGetPrinterDriver | INT_PTR | 8/4 | +88 | +44 | GetPrinterDriverを実装する関数へのポインター。 |
| fpGetPrinterDriverDirectory | INT_PTR | 8/4 | +96 | +48 | GetPrinterDriverDirectoryを実装する関数へのポインター。 |
| fpDeletePrinterDriver | INT_PTR | 8/4 | +104 | +52 | DeletePrinterDriverを実装する関数へのポインター。 |
| fpAddPrintProcessor | INT_PTR | 8/4 | +112 | +56 | AddPrintProcessorを実装する関数へのポインター。 |
| fpEnumPrintProcessors | INT_PTR | 8/4 | +120 | +60 | EnumPrintProcessorsを実装する関数へのポインター。 |
| fpGetPrintProcessorDirectory | INT_PTR | 8/4 | +128 | +64 | GetPrintProcessorDirectoryを実装する関数へのポインター。 |
| fpDeletePrintProcessor | INT_PTR | 8/4 | +136 | +68 | DeletePrintProcessorを実装する関数へのポインター。 |
| fpEnumPrintProcessorDatatypes | INT_PTR | 8/4 | +144 | +72 | EnumPrintProcessorDatatypesを実装する関数へのポインター。 |
| fpStartDocPrinter | INT_PTR | 8/4 | +152 | +76 | StartDocPrinterを実装する関数へのポインター。 |
| fpStartPagePrinter | INT_PTR | 8/4 | +160 | +80 | StartPagePrinterを実装する関数へのポインター。 |
| fpWritePrinter | INT_PTR | 8/4 | +168 | +84 | WritePrinterを実装する関数へのポインター。 |
| fpEndPagePrinter | INT_PTR | 8/4 | +176 | +88 | EndPagePrinterを実装する関数へのポインター。 |
| fpAbortPrinter | INT_PTR | 8/4 | +184 | +92 | AbortPrinterを実装する関数へのポインター。 |
| fpReadPrinter | INT_PTR | 8/4 | +192 | +96 | ReadPrinterを実装する関数へのポインター。 |
| fpEndDocPrinter | INT_PTR | 8/4 | +200 | +100 | EndDocPrinterを実装する関数へのポインター。 |
| fpAddJob | INT_PTR | 8/4 | +208 | +104 | AddJobを実装する関数へのポインター。 |
| fpScheduleJob | INT_PTR | 8/4 | +216 | +108 | ScheduleJobを実装する関数へのポインター。 |
| fpGetPrinterData | INT_PTR | 8/4 | +224 | +112 | GetPrinterDataを実装する関数へのポインター。 |
| fpSetPrinterData | INT_PTR | 8/4 | +232 | +116 | SetPrinterDataを実装する関数へのポインター。 |
| fpWaitForPrinterChange | INT_PTR | 8/4 | +240 | +120 | WaitForPrinterChangeを実装する関数へのポインター。 |
| fpClosePrinter | INT_PTR | 8/4 | +248 | +124 | ClosePrinterを実装する関数へのポインター。 |
| fpAddForm | INT_PTR | 8/4 | +256 | +128 | AddFormを実装する関数へのポインター。 |
| fpDeleteForm | INT_PTR | 8/4 | +264 | +132 | DeleteFormを実装する関数へのポインター。 |
| fpGetForm | INT_PTR | 8/4 | +272 | +136 | GetFormを実装する関数へのポインター。 |
| fpSetForm | INT_PTR | 8/4 | +280 | +140 | SetFormを実装する関数へのポインター。 |
| fpEnumForms | INT_PTR | 8/4 | +288 | +144 | EnumFormsを実装する関数へのポインター。 |
| fpEnumMonitors | INT_PTR | 8/4 | +296 | +148 | EnumMonitorsを実装する関数へのポインター。 |
| fpEnumPorts | INT_PTR | 8/4 | +304 | +152 | EnumPortsを実装する関数へのポインター。 |
| fpAddPort | INT_PTR | 8/4 | +312 | +156 | AddPortを実装する関数へのポインター。 |
| fpConfigurePort | INT_PTR | 8/4 | +320 | +160 | ConfigurePortを実装する関数へのポインター。 |
| fpDeletePort | INT_PTR | 8/4 | +328 | +164 | DeletePortを実装する関数へのポインター。 |
| fpCreatePrinterIC | INT_PTR | 8/4 | +336 | +168 | CreatePrinterICを実装する関数へのポインター。 |
| fpPlayGdiScriptOnPrinterIC | INT_PTR | 8/4 | +344 | +172 | PlayGdiScriptOnPrinterICを実装する関数へのポインター。 |
| fpDeletePrinterIC | INT_PTR | 8/4 | +352 | +176 | DeletePrinterICを実装する関数へのポインター。 |
| fpAddPrinterConnection | INT_PTR | 8/4 | +360 | +180 | AddPrinterConnectionを実装する関数へのポインター。 |
| fpDeletePrinterConnection | INT_PTR | 8/4 | +368 | +184 | DeletePrinterConnectionを実装する関数へのポインター。 |
| fpPrinterMessageBox | INT_PTR | 8/4 | +376 | +188 | PrinterMessageBoxを実装する関数へのポインター。 |
| fpAddMonitor | INT_PTR | 8/4 | +384 | +192 | AddMonitorを実装する関数へのポインター。 |
| fpDeleteMonitor | INT_PTR | 8/4 | +392 | +196 | DeleteMonitorを実装する関数へのポインター。 |
| fpResetPrinter | INT_PTR | 8/4 | +400 | +200 | ResetPrinterを実装する関数へのポインター。 |
| fpGetPrinterDriverEx | INT_PTR | 8/4 | +408 | +204 | GetPrinterDriverExを実装する関数へのポインター。 |
| fpFindFirstPrinterChangeNotification | INT_PTR | 8/4 | +416 | +208 | FindFirstPrinterChangeNotificationを実装する関数へのポインター。 |
| fpFindClosePrinterChangeNotification | INT_PTR | 8/4 | +424 | +212 | FindClosePrinterChangeNotificationを実装する関数へのポインター。 |
| fpAddPortEx | INT_PTR | 8/4 | +432 | +216 | AddPortExを実装する関数へのポインター。 |
| fpShutDown | INT_PTR | 8/4 | +440 | +220 | シャットダウン処理を実装する関数へのポインター。 |
| fpRefreshPrinterChangeNotification | INT_PTR | 8/4 | +448 | +224 | RefreshPrinterChangeNotificationを実装する関数へのポインター。 |
| fpOpenPrinterEx | INT_PTR | 8/4 | +456 | +228 | OpenPrinterExを実装する関数へのポインター。 |
| fpAddPrinterEx | INT_PTR | 8/4 | +464 | +232 | AddPrinterExを実装する関数へのポインター。 |
| fpSetPort | INT_PTR | 8/4 | +472 | +236 | SetPortを実装する関数へのポインター。 |
| fpEnumPrinterData | INT_PTR | 8/4 | +480 | +240 | EnumPrinterDataを実装する関数へのポインター。 |
| fpDeletePrinterData | INT_PTR | 8/4 | +488 | +244 | DeletePrinterDataを実装する関数へのポインター。 |
| fpClusterSplOpen | INT_PTR | 8/4 | +496 | +248 | クラスタースプーラーのオープンを実装する関数へのポインター。 |
| fpClusterSplClose | INT_PTR | 8/4 | +504 | +252 | クラスタースプーラーのクローズを実装する関数へのポインター。 |
| fpClusterSplIsAlive | INT_PTR | 8/4 | +512 | +256 | クラスタースプーラーの生存確認を実装する関数へのポインター。 |
| fpSetPrinterDataEx | INT_PTR | 8/4 | +520 | +260 | SetPrinterDataExを実装する関数へのポインター。 |
| fpGetPrinterDataEx | INT_PTR | 8/4 | +528 | +264 | GetPrinterDataExを実装する関数へのポインター。 |
| fpEnumPrinterDataEx | INT_PTR | 8/4 | +536 | +268 | EnumPrinterDataExを実装する関数へのポインター。 |
| fpEnumPrinterKey | INT_PTR | 8/4 | +544 | +272 | EnumPrinterKeyを実装する関数へのポインター。 |
| fpDeletePrinterDataEx | INT_PTR | 8/4 | +552 | +276 | DeletePrinterDataExを実装する関数へのポインター。 |
| fpDeletePrinterKey | INT_PTR | 8/4 | +560 | +280 | DeletePrinterKeyを実装する関数へのポインター。 |
| fpSeekPrinter | INT_PTR | 8/4 | +568 | +284 | プリンターストリームのシークを実装する関数へのポインター。 |
| fpDeletePrinterDriverEx | INT_PTR | 8/4 | +576 | +288 | DeletePrinterDriverExを実装する関数へのポインター。 |
| fpAddPerMachineConnection | INT_PTR | 8/4 | +584 | +292 | AddPerMachineConnectionを実装する関数へのポインター。 |
| fpDeletePerMachineConnection | INT_PTR | 8/4 | +592 | +296 | DeletePerMachineConnectionを実装する関数へのポインター。 |
| fpEnumPerMachineConnections | INT_PTR | 8/4 | +600 | +300 | EnumPerMachineConnectionsを実装する関数へのポインター。 |
| fpXcvData | INT_PTR | 8/4 | +608 | +304 | XcvDataを実装する関数へのポインター。 |
| fpAddPrinterDriverEx | INT_PTR | 8/4 | +616 | +308 | AddPrinterDriverExを実装する関数へのポインター。 |
| fpSplReadPrinter | INT_PTR | 8/4 | +624 | +312 | スプーラー内部のプリンター読み取りを実装する関数へのポインター。 |
| fpDriverUnloadComplete | INT_PTR | 8/4 | +632 | +316 | ドライバーアンロード完了通知を実装する関数へのポインター。 |
| fpGetSpoolFileInfo | INT_PTR | 8/4 | +640 | +320 | スプールファイル情報取得を実装する関数へのポインター。 |
| fpCommitSpoolData | INT_PTR | 8/4 | +648 | +324 | スプールデータのコミットを実装する関数へのポインター。 |
| fpCloseSpoolFileHandle | INT_PTR | 8/4 | +656 | +328 | スプールファイルハンドルのクローズを実装する関数へのポインター。 |
| fpFlushPrinter | INT_PTR | 8/4 | +664 | +332 | FlushPrinterを実装する関数へのポインター。 |
| fpSendRecvBidiData | INT_PTR | 8/4 | +672 | +336 | 双方向(Bidi)データ送受信を実装する関数へのポインター。 |
| fpAddPrinterConnection2 | INT_PTR | 8/4 | +680 | +340 | AddPrinterConnection2を実装する関数へのポインター。 |
| fpGetPrintClassObject | INT_PTR | 8/4 | +688 | +344 | プリントクラスオブジェクト取得を実装する関数へのポインター。 |
| fpReportJobProcessingProgress | INT_PTR | 8/4 | +696 | +348 | ReportJobProcessingProgressを実装する関数へのポインター。 |
| fpEnumAndLogProvidorObjects | INT_PTR | 8/4 | +704 | +352 | プロバイダーオブジェクトの列挙とログを実装する関数へのポインター。 |
| fpInternalGetPrinterDriver | INT_PTR | 8/4 | +712 | +356 | 内部用GetPrinterDriverを実装する関数へのポインター。 |
| fpFindCompatibleDriver | INT_PTR | 8/4 | +720 | +360 | 互換ドライバー検索を実装する関数へのポインター。 |
| fpInstallPrinterDriverPackageFromConnection | INT_PTR | 8/4 | +728 | +364 | 接続からのドライバーパッケージインストールを実装する関数へのポインター。 |
| fpGetJobNamedPropertyValue | INT_PTR | 8/4 | +736 | +368 | ジョブの名前付きプロパティ値取得を実装する関数へのポインター。 |
| fpSetJobNamedProperty | INT_PTR | 8/4 | +744 | +372 | ジョブの名前付きプロパティ設定を実装する関数へのポインター。 |
| fpDeleteJobNamedProperty | INT_PTR | 8/4 | +752 | +376 | ジョブの名前付きプロパティ削除を実装する関数へのポインター。 |
| fpEnumJobNamedProperties | INT_PTR | 8/4 | +760 | +380 | ジョブの名前付きプロパティ列挙を実装する関数へのポインター。 |
| fpPowerEvent | INT_PTR | 8/4 | +768 | +384 | 電源イベント処理を実装する関数へのポインター。 |
| fpGetUserPropertyBag | INT_PTR | 8/4 | +776 | +388 | ユーザープロパティバッグ取得を実装する関数へのポインター。 |
| fpCanShutdown | INT_PTR | 8/4 | +784 | +392 | シャットダウン可否判定を実装する関数へのポインター。 |
| fpLogJobInfoForBranchOffice | INT_PTR | 8/4 | +792 | +396 | ブランチオフィス向けジョブ情報ログを実装する関数へのポインター。 |
| fpRegeneratePrintDeviceCapabilities | INT_PTR | 8/4 | +800 | +400 | 印刷デバイス能力の再生成を実装する関数へのポインター。 |
| fpPrintSupportOperation | INT_PTR | 8/4 | +808 | +404 | 印刷サポート操作を実装する関数へのポインター。 |
| fpIppCreateJobOnPrinter | INT_PTR | 8/4 | +816 | +408 | IPPでのプリンタージョブ作成を実装する関数へのポインター。 |
| fpIppGetJobAttributes | INT_PTR | 8/4 | +824 | +412 | IPPジョブ属性取得を実装する関数へのポインター。 |
| fpIppSetJobAttributes | INT_PTR | 8/4 | +832 | +416 | IPPジョブ属性設定を実装する関数へのポインター。 |
| fpIppGetPrinterAttributes | INT_PTR | 8/4 | +840 | +420 | IPPプリンター属性取得を実装する関数へのポインター。 |
| fpIppSetPrinterAttributes | INT_PTR | 8/4 | +848 | +424 | IPPプリンター属性設定を実装する関数へのポインター。 |
| fpIppCreateJobOnPrinterWithAttributes | INT_PTR | 8/4 | +856 | +428 | 属性付きIPPプリンタージョブ作成を実装する関数へのポインター。 |
各言語での定義
#include <windows.h>
// PRINTPROVIDOR (x64 864 / x86 432 バイト)
typedef struct PRINTPROVIDOR {
INT_PTR fpOpenPrinter;
INT_PTR fpSetJob;
INT_PTR fpGetJob;
INT_PTR fpEnumJobs;
INT_PTR fpAddPrinter;
INT_PTR fpDeletePrinter;
INT_PTR fpSetPrinter;
INT_PTR fpGetPrinter;
INT_PTR fpEnumPrinters;
INT_PTR fpAddPrinterDriver;
INT_PTR fpEnumPrinterDrivers;
INT_PTR fpGetPrinterDriver;
INT_PTR fpGetPrinterDriverDirectory;
INT_PTR fpDeletePrinterDriver;
INT_PTR fpAddPrintProcessor;
INT_PTR fpEnumPrintProcessors;
INT_PTR fpGetPrintProcessorDirectory;
INT_PTR fpDeletePrintProcessor;
INT_PTR fpEnumPrintProcessorDatatypes;
INT_PTR fpStartDocPrinter;
INT_PTR fpStartPagePrinter;
INT_PTR fpWritePrinter;
INT_PTR fpEndPagePrinter;
INT_PTR fpAbortPrinter;
INT_PTR fpReadPrinter;
INT_PTR fpEndDocPrinter;
INT_PTR fpAddJob;
INT_PTR fpScheduleJob;
INT_PTR fpGetPrinterData;
INT_PTR fpSetPrinterData;
INT_PTR fpWaitForPrinterChange;
INT_PTR fpClosePrinter;
INT_PTR fpAddForm;
INT_PTR fpDeleteForm;
INT_PTR fpGetForm;
INT_PTR fpSetForm;
INT_PTR fpEnumForms;
INT_PTR fpEnumMonitors;
INT_PTR fpEnumPorts;
INT_PTR fpAddPort;
INT_PTR fpConfigurePort;
INT_PTR fpDeletePort;
INT_PTR fpCreatePrinterIC;
INT_PTR fpPlayGdiScriptOnPrinterIC;
INT_PTR fpDeletePrinterIC;
INT_PTR fpAddPrinterConnection;
INT_PTR fpDeletePrinterConnection;
INT_PTR fpPrinterMessageBox;
INT_PTR fpAddMonitor;
INT_PTR fpDeleteMonitor;
INT_PTR fpResetPrinter;
INT_PTR fpGetPrinterDriverEx;
INT_PTR fpFindFirstPrinterChangeNotification;
INT_PTR fpFindClosePrinterChangeNotification;
INT_PTR fpAddPortEx;
INT_PTR fpShutDown;
INT_PTR fpRefreshPrinterChangeNotification;
INT_PTR fpOpenPrinterEx;
INT_PTR fpAddPrinterEx;
INT_PTR fpSetPort;
INT_PTR fpEnumPrinterData;
INT_PTR fpDeletePrinterData;
INT_PTR fpClusterSplOpen;
INT_PTR fpClusterSplClose;
INT_PTR fpClusterSplIsAlive;
INT_PTR fpSetPrinterDataEx;
INT_PTR fpGetPrinterDataEx;
INT_PTR fpEnumPrinterDataEx;
INT_PTR fpEnumPrinterKey;
INT_PTR fpDeletePrinterDataEx;
INT_PTR fpDeletePrinterKey;
INT_PTR fpSeekPrinter;
INT_PTR fpDeletePrinterDriverEx;
INT_PTR fpAddPerMachineConnection;
INT_PTR fpDeletePerMachineConnection;
INT_PTR fpEnumPerMachineConnections;
INT_PTR fpXcvData;
INT_PTR fpAddPrinterDriverEx;
INT_PTR fpSplReadPrinter;
INT_PTR fpDriverUnloadComplete;
INT_PTR fpGetSpoolFileInfo;
INT_PTR fpCommitSpoolData;
INT_PTR fpCloseSpoolFileHandle;
INT_PTR fpFlushPrinter;
INT_PTR fpSendRecvBidiData;
INT_PTR fpAddPrinterConnection2;
INT_PTR fpGetPrintClassObject;
INT_PTR fpReportJobProcessingProgress;
INT_PTR fpEnumAndLogProvidorObjects;
INT_PTR fpInternalGetPrinterDriver;
INT_PTR fpFindCompatibleDriver;
INT_PTR fpInstallPrinterDriverPackageFromConnection;
INT_PTR fpGetJobNamedPropertyValue;
INT_PTR fpSetJobNamedProperty;
INT_PTR fpDeleteJobNamedProperty;
INT_PTR fpEnumJobNamedProperties;
INT_PTR fpPowerEvent;
INT_PTR fpGetUserPropertyBag;
INT_PTR fpCanShutdown;
INT_PTR fpLogJobInfoForBranchOffice;
INT_PTR fpRegeneratePrintDeviceCapabilities;
INT_PTR fpPrintSupportOperation;
INT_PTR fpIppCreateJobOnPrinter;
INT_PTR fpIppGetJobAttributes;
INT_PTR fpIppSetJobAttributes;
INT_PTR fpIppGetPrinterAttributes;
INT_PTR fpIppSetPrinterAttributes;
INT_PTR fpIppCreateJobOnPrinterWithAttributes;
} PRINTPROVIDOR;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct PRINTPROVIDOR
{
public IntPtr fpOpenPrinter;
public IntPtr fpSetJob;
public IntPtr fpGetJob;
public IntPtr fpEnumJobs;
public IntPtr fpAddPrinter;
public IntPtr fpDeletePrinter;
public IntPtr fpSetPrinter;
public IntPtr fpGetPrinter;
public IntPtr fpEnumPrinters;
public IntPtr fpAddPrinterDriver;
public IntPtr fpEnumPrinterDrivers;
public IntPtr fpGetPrinterDriver;
public IntPtr fpGetPrinterDriverDirectory;
public IntPtr fpDeletePrinterDriver;
public IntPtr fpAddPrintProcessor;
public IntPtr fpEnumPrintProcessors;
public IntPtr fpGetPrintProcessorDirectory;
public IntPtr fpDeletePrintProcessor;
public IntPtr fpEnumPrintProcessorDatatypes;
public IntPtr fpStartDocPrinter;
public IntPtr fpStartPagePrinter;
public IntPtr fpWritePrinter;
public IntPtr fpEndPagePrinter;
public IntPtr fpAbortPrinter;
public IntPtr fpReadPrinter;
public IntPtr fpEndDocPrinter;
public IntPtr fpAddJob;
public IntPtr fpScheduleJob;
public IntPtr fpGetPrinterData;
public IntPtr fpSetPrinterData;
public IntPtr fpWaitForPrinterChange;
public IntPtr fpClosePrinter;
public IntPtr fpAddForm;
public IntPtr fpDeleteForm;
public IntPtr fpGetForm;
public IntPtr fpSetForm;
public IntPtr fpEnumForms;
public IntPtr fpEnumMonitors;
public IntPtr fpEnumPorts;
public IntPtr fpAddPort;
public IntPtr fpConfigurePort;
public IntPtr fpDeletePort;
public IntPtr fpCreatePrinterIC;
public IntPtr fpPlayGdiScriptOnPrinterIC;
public IntPtr fpDeletePrinterIC;
public IntPtr fpAddPrinterConnection;
public IntPtr fpDeletePrinterConnection;
public IntPtr fpPrinterMessageBox;
public IntPtr fpAddMonitor;
public IntPtr fpDeleteMonitor;
public IntPtr fpResetPrinter;
public IntPtr fpGetPrinterDriverEx;
public IntPtr fpFindFirstPrinterChangeNotification;
public IntPtr fpFindClosePrinterChangeNotification;
public IntPtr fpAddPortEx;
public IntPtr fpShutDown;
public IntPtr fpRefreshPrinterChangeNotification;
public IntPtr fpOpenPrinterEx;
public IntPtr fpAddPrinterEx;
public IntPtr fpSetPort;
public IntPtr fpEnumPrinterData;
public IntPtr fpDeletePrinterData;
public IntPtr fpClusterSplOpen;
public IntPtr fpClusterSplClose;
public IntPtr fpClusterSplIsAlive;
public IntPtr fpSetPrinterDataEx;
public IntPtr fpGetPrinterDataEx;
public IntPtr fpEnumPrinterDataEx;
public IntPtr fpEnumPrinterKey;
public IntPtr fpDeletePrinterDataEx;
public IntPtr fpDeletePrinterKey;
public IntPtr fpSeekPrinter;
public IntPtr fpDeletePrinterDriverEx;
public IntPtr fpAddPerMachineConnection;
public IntPtr fpDeletePerMachineConnection;
public IntPtr fpEnumPerMachineConnections;
public IntPtr fpXcvData;
public IntPtr fpAddPrinterDriverEx;
public IntPtr fpSplReadPrinter;
public IntPtr fpDriverUnloadComplete;
public IntPtr fpGetSpoolFileInfo;
public IntPtr fpCommitSpoolData;
public IntPtr fpCloseSpoolFileHandle;
public IntPtr fpFlushPrinter;
public IntPtr fpSendRecvBidiData;
public IntPtr fpAddPrinterConnection2;
public IntPtr fpGetPrintClassObject;
public IntPtr fpReportJobProcessingProgress;
public IntPtr fpEnumAndLogProvidorObjects;
public IntPtr fpInternalGetPrinterDriver;
public IntPtr fpFindCompatibleDriver;
public IntPtr fpInstallPrinterDriverPackageFromConnection;
public IntPtr fpGetJobNamedPropertyValue;
public IntPtr fpSetJobNamedProperty;
public IntPtr fpDeleteJobNamedProperty;
public IntPtr fpEnumJobNamedProperties;
public IntPtr fpPowerEvent;
public IntPtr fpGetUserPropertyBag;
public IntPtr fpCanShutdown;
public IntPtr fpLogJobInfoForBranchOffice;
public IntPtr fpRegeneratePrintDeviceCapabilities;
public IntPtr fpPrintSupportOperation;
public IntPtr fpIppCreateJobOnPrinter;
public IntPtr fpIppGetJobAttributes;
public IntPtr fpIppSetJobAttributes;
public IntPtr fpIppGetPrinterAttributes;
public IntPtr fpIppSetPrinterAttributes;
public IntPtr fpIppCreateJobOnPrinterWithAttributes;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure PRINTPROVIDOR
Public fpOpenPrinter As IntPtr
Public fpSetJob As IntPtr
Public fpGetJob As IntPtr
Public fpEnumJobs As IntPtr
Public fpAddPrinter As IntPtr
Public fpDeletePrinter As IntPtr
Public fpSetPrinter As IntPtr
Public fpGetPrinter As IntPtr
Public fpEnumPrinters As IntPtr
Public fpAddPrinterDriver As IntPtr
Public fpEnumPrinterDrivers As IntPtr
Public fpGetPrinterDriver As IntPtr
Public fpGetPrinterDriverDirectory As IntPtr
Public fpDeletePrinterDriver As IntPtr
Public fpAddPrintProcessor As IntPtr
Public fpEnumPrintProcessors As IntPtr
Public fpGetPrintProcessorDirectory As IntPtr
Public fpDeletePrintProcessor As IntPtr
Public fpEnumPrintProcessorDatatypes As IntPtr
Public fpStartDocPrinter As IntPtr
Public fpStartPagePrinter As IntPtr
Public fpWritePrinter As IntPtr
Public fpEndPagePrinter As IntPtr
Public fpAbortPrinter As IntPtr
Public fpReadPrinter As IntPtr
Public fpEndDocPrinter As IntPtr
Public fpAddJob As IntPtr
Public fpScheduleJob As IntPtr
Public fpGetPrinterData As IntPtr
Public fpSetPrinterData As IntPtr
Public fpWaitForPrinterChange As IntPtr
Public fpClosePrinter As IntPtr
Public fpAddForm As IntPtr
Public fpDeleteForm As IntPtr
Public fpGetForm As IntPtr
Public fpSetForm As IntPtr
Public fpEnumForms As IntPtr
Public fpEnumMonitors As IntPtr
Public fpEnumPorts As IntPtr
Public fpAddPort As IntPtr
Public fpConfigurePort As IntPtr
Public fpDeletePort As IntPtr
Public fpCreatePrinterIC As IntPtr
Public fpPlayGdiScriptOnPrinterIC As IntPtr
Public fpDeletePrinterIC As IntPtr
Public fpAddPrinterConnection As IntPtr
Public fpDeletePrinterConnection As IntPtr
Public fpPrinterMessageBox As IntPtr
Public fpAddMonitor As IntPtr
Public fpDeleteMonitor As IntPtr
Public fpResetPrinter As IntPtr
Public fpGetPrinterDriverEx As IntPtr
Public fpFindFirstPrinterChangeNotification As IntPtr
Public fpFindClosePrinterChangeNotification As IntPtr
Public fpAddPortEx As IntPtr
Public fpShutDown As IntPtr
Public fpRefreshPrinterChangeNotification As IntPtr
Public fpOpenPrinterEx As IntPtr
Public fpAddPrinterEx As IntPtr
Public fpSetPort As IntPtr
Public fpEnumPrinterData As IntPtr
Public fpDeletePrinterData As IntPtr
Public fpClusterSplOpen As IntPtr
Public fpClusterSplClose As IntPtr
Public fpClusterSplIsAlive As IntPtr
Public fpSetPrinterDataEx As IntPtr
Public fpGetPrinterDataEx As IntPtr
Public fpEnumPrinterDataEx As IntPtr
Public fpEnumPrinterKey As IntPtr
Public fpDeletePrinterDataEx As IntPtr
Public fpDeletePrinterKey As IntPtr
Public fpSeekPrinter As IntPtr
Public fpDeletePrinterDriverEx As IntPtr
Public fpAddPerMachineConnection As IntPtr
Public fpDeletePerMachineConnection As IntPtr
Public fpEnumPerMachineConnections As IntPtr
Public fpXcvData As IntPtr
Public fpAddPrinterDriverEx As IntPtr
Public fpSplReadPrinter As IntPtr
Public fpDriverUnloadComplete As IntPtr
Public fpGetSpoolFileInfo As IntPtr
Public fpCommitSpoolData As IntPtr
Public fpCloseSpoolFileHandle As IntPtr
Public fpFlushPrinter As IntPtr
Public fpSendRecvBidiData As IntPtr
Public fpAddPrinterConnection2 As IntPtr
Public fpGetPrintClassObject As IntPtr
Public fpReportJobProcessingProgress As IntPtr
Public fpEnumAndLogProvidorObjects As IntPtr
Public fpInternalGetPrinterDriver As IntPtr
Public fpFindCompatibleDriver As IntPtr
Public fpInstallPrinterDriverPackageFromConnection As IntPtr
Public fpGetJobNamedPropertyValue As IntPtr
Public fpSetJobNamedProperty As IntPtr
Public fpDeleteJobNamedProperty As IntPtr
Public fpEnumJobNamedProperties As IntPtr
Public fpPowerEvent As IntPtr
Public fpGetUserPropertyBag As IntPtr
Public fpCanShutdown As IntPtr
Public fpLogJobInfoForBranchOffice As IntPtr
Public fpRegeneratePrintDeviceCapabilities As IntPtr
Public fpPrintSupportOperation As IntPtr
Public fpIppCreateJobOnPrinter As IntPtr
Public fpIppGetJobAttributes As IntPtr
Public fpIppSetJobAttributes As IntPtr
Public fpIppGetPrinterAttributes As IntPtr
Public fpIppSetPrinterAttributes As IntPtr
Public fpIppCreateJobOnPrinterWithAttributes As IntPtr
End Structureimport ctypes
from ctypes import wintypes
class PRINTPROVIDOR(ctypes.Structure):
_fields_ = [
("fpOpenPrinter", ctypes.c_ssize_t),
("fpSetJob", ctypes.c_ssize_t),
("fpGetJob", ctypes.c_ssize_t),
("fpEnumJobs", ctypes.c_ssize_t),
("fpAddPrinter", ctypes.c_ssize_t),
("fpDeletePrinter", ctypes.c_ssize_t),
("fpSetPrinter", ctypes.c_ssize_t),
("fpGetPrinter", ctypes.c_ssize_t),
("fpEnumPrinters", ctypes.c_ssize_t),
("fpAddPrinterDriver", ctypes.c_ssize_t),
("fpEnumPrinterDrivers", ctypes.c_ssize_t),
("fpGetPrinterDriver", ctypes.c_ssize_t),
("fpGetPrinterDriverDirectory", ctypes.c_ssize_t),
("fpDeletePrinterDriver", ctypes.c_ssize_t),
("fpAddPrintProcessor", ctypes.c_ssize_t),
("fpEnumPrintProcessors", ctypes.c_ssize_t),
("fpGetPrintProcessorDirectory", ctypes.c_ssize_t),
("fpDeletePrintProcessor", ctypes.c_ssize_t),
("fpEnumPrintProcessorDatatypes", ctypes.c_ssize_t),
("fpStartDocPrinter", ctypes.c_ssize_t),
("fpStartPagePrinter", ctypes.c_ssize_t),
("fpWritePrinter", ctypes.c_ssize_t),
("fpEndPagePrinter", ctypes.c_ssize_t),
("fpAbortPrinter", ctypes.c_ssize_t),
("fpReadPrinter", ctypes.c_ssize_t),
("fpEndDocPrinter", ctypes.c_ssize_t),
("fpAddJob", ctypes.c_ssize_t),
("fpScheduleJob", ctypes.c_ssize_t),
("fpGetPrinterData", ctypes.c_ssize_t),
("fpSetPrinterData", ctypes.c_ssize_t),
("fpWaitForPrinterChange", ctypes.c_ssize_t),
("fpClosePrinter", ctypes.c_ssize_t),
("fpAddForm", ctypes.c_ssize_t),
("fpDeleteForm", ctypes.c_ssize_t),
("fpGetForm", ctypes.c_ssize_t),
("fpSetForm", ctypes.c_ssize_t),
("fpEnumForms", ctypes.c_ssize_t),
("fpEnumMonitors", ctypes.c_ssize_t),
("fpEnumPorts", ctypes.c_ssize_t),
("fpAddPort", ctypes.c_ssize_t),
("fpConfigurePort", ctypes.c_ssize_t),
("fpDeletePort", ctypes.c_ssize_t),
("fpCreatePrinterIC", ctypes.c_ssize_t),
("fpPlayGdiScriptOnPrinterIC", ctypes.c_ssize_t),
("fpDeletePrinterIC", ctypes.c_ssize_t),
("fpAddPrinterConnection", ctypes.c_ssize_t),
("fpDeletePrinterConnection", ctypes.c_ssize_t),
("fpPrinterMessageBox", ctypes.c_ssize_t),
("fpAddMonitor", ctypes.c_ssize_t),
("fpDeleteMonitor", ctypes.c_ssize_t),
("fpResetPrinter", ctypes.c_ssize_t),
("fpGetPrinterDriverEx", ctypes.c_ssize_t),
("fpFindFirstPrinterChangeNotification", ctypes.c_ssize_t),
("fpFindClosePrinterChangeNotification", ctypes.c_ssize_t),
("fpAddPortEx", ctypes.c_ssize_t),
("fpShutDown", ctypes.c_ssize_t),
("fpRefreshPrinterChangeNotification", ctypes.c_ssize_t),
("fpOpenPrinterEx", ctypes.c_ssize_t),
("fpAddPrinterEx", ctypes.c_ssize_t),
("fpSetPort", ctypes.c_ssize_t),
("fpEnumPrinterData", ctypes.c_ssize_t),
("fpDeletePrinterData", ctypes.c_ssize_t),
("fpClusterSplOpen", ctypes.c_ssize_t),
("fpClusterSplClose", ctypes.c_ssize_t),
("fpClusterSplIsAlive", ctypes.c_ssize_t),
("fpSetPrinterDataEx", ctypes.c_ssize_t),
("fpGetPrinterDataEx", ctypes.c_ssize_t),
("fpEnumPrinterDataEx", ctypes.c_ssize_t),
("fpEnumPrinterKey", ctypes.c_ssize_t),
("fpDeletePrinterDataEx", ctypes.c_ssize_t),
("fpDeletePrinterKey", ctypes.c_ssize_t),
("fpSeekPrinter", ctypes.c_ssize_t),
("fpDeletePrinterDriverEx", ctypes.c_ssize_t),
("fpAddPerMachineConnection", ctypes.c_ssize_t),
("fpDeletePerMachineConnection", ctypes.c_ssize_t),
("fpEnumPerMachineConnections", ctypes.c_ssize_t),
("fpXcvData", ctypes.c_ssize_t),
("fpAddPrinterDriverEx", ctypes.c_ssize_t),
("fpSplReadPrinter", ctypes.c_ssize_t),
("fpDriverUnloadComplete", ctypes.c_ssize_t),
("fpGetSpoolFileInfo", ctypes.c_ssize_t),
("fpCommitSpoolData", ctypes.c_ssize_t),
("fpCloseSpoolFileHandle", ctypes.c_ssize_t),
("fpFlushPrinter", ctypes.c_ssize_t),
("fpSendRecvBidiData", ctypes.c_ssize_t),
("fpAddPrinterConnection2", ctypes.c_ssize_t),
("fpGetPrintClassObject", ctypes.c_ssize_t),
("fpReportJobProcessingProgress", ctypes.c_ssize_t),
("fpEnumAndLogProvidorObjects", ctypes.c_ssize_t),
("fpInternalGetPrinterDriver", ctypes.c_ssize_t),
("fpFindCompatibleDriver", ctypes.c_ssize_t),
("fpInstallPrinterDriverPackageFromConnection", ctypes.c_ssize_t),
("fpGetJobNamedPropertyValue", ctypes.c_ssize_t),
("fpSetJobNamedProperty", ctypes.c_ssize_t),
("fpDeleteJobNamedProperty", ctypes.c_ssize_t),
("fpEnumJobNamedProperties", ctypes.c_ssize_t),
("fpPowerEvent", ctypes.c_ssize_t),
("fpGetUserPropertyBag", ctypes.c_ssize_t),
("fpCanShutdown", ctypes.c_ssize_t),
("fpLogJobInfoForBranchOffice", ctypes.c_ssize_t),
("fpRegeneratePrintDeviceCapabilities", ctypes.c_ssize_t),
("fpPrintSupportOperation", ctypes.c_ssize_t),
("fpIppCreateJobOnPrinter", ctypes.c_ssize_t),
("fpIppGetJobAttributes", ctypes.c_ssize_t),
("fpIppSetJobAttributes", ctypes.c_ssize_t),
("fpIppGetPrinterAttributes", ctypes.c_ssize_t),
("fpIppSetPrinterAttributes", ctypes.c_ssize_t),
("fpIppCreateJobOnPrinterWithAttributes", ctypes.c_ssize_t),
]#[repr(C)]
pub struct PRINTPROVIDOR {
pub fpOpenPrinter: isize,
pub fpSetJob: isize,
pub fpGetJob: isize,
pub fpEnumJobs: isize,
pub fpAddPrinter: isize,
pub fpDeletePrinter: isize,
pub fpSetPrinter: isize,
pub fpGetPrinter: isize,
pub fpEnumPrinters: isize,
pub fpAddPrinterDriver: isize,
pub fpEnumPrinterDrivers: isize,
pub fpGetPrinterDriver: isize,
pub fpGetPrinterDriverDirectory: isize,
pub fpDeletePrinterDriver: isize,
pub fpAddPrintProcessor: isize,
pub fpEnumPrintProcessors: isize,
pub fpGetPrintProcessorDirectory: isize,
pub fpDeletePrintProcessor: isize,
pub fpEnumPrintProcessorDatatypes: isize,
pub fpStartDocPrinter: isize,
pub fpStartPagePrinter: isize,
pub fpWritePrinter: isize,
pub fpEndPagePrinter: isize,
pub fpAbortPrinter: isize,
pub fpReadPrinter: isize,
pub fpEndDocPrinter: isize,
pub fpAddJob: isize,
pub fpScheduleJob: isize,
pub fpGetPrinterData: isize,
pub fpSetPrinterData: isize,
pub fpWaitForPrinterChange: isize,
pub fpClosePrinter: isize,
pub fpAddForm: isize,
pub fpDeleteForm: isize,
pub fpGetForm: isize,
pub fpSetForm: isize,
pub fpEnumForms: isize,
pub fpEnumMonitors: isize,
pub fpEnumPorts: isize,
pub fpAddPort: isize,
pub fpConfigurePort: isize,
pub fpDeletePort: isize,
pub fpCreatePrinterIC: isize,
pub fpPlayGdiScriptOnPrinterIC: isize,
pub fpDeletePrinterIC: isize,
pub fpAddPrinterConnection: isize,
pub fpDeletePrinterConnection: isize,
pub fpPrinterMessageBox: isize,
pub fpAddMonitor: isize,
pub fpDeleteMonitor: isize,
pub fpResetPrinter: isize,
pub fpGetPrinterDriverEx: isize,
pub fpFindFirstPrinterChangeNotification: isize,
pub fpFindClosePrinterChangeNotification: isize,
pub fpAddPortEx: isize,
pub fpShutDown: isize,
pub fpRefreshPrinterChangeNotification: isize,
pub fpOpenPrinterEx: isize,
pub fpAddPrinterEx: isize,
pub fpSetPort: isize,
pub fpEnumPrinterData: isize,
pub fpDeletePrinterData: isize,
pub fpClusterSplOpen: isize,
pub fpClusterSplClose: isize,
pub fpClusterSplIsAlive: isize,
pub fpSetPrinterDataEx: isize,
pub fpGetPrinterDataEx: isize,
pub fpEnumPrinterDataEx: isize,
pub fpEnumPrinterKey: isize,
pub fpDeletePrinterDataEx: isize,
pub fpDeletePrinterKey: isize,
pub fpSeekPrinter: isize,
pub fpDeletePrinterDriverEx: isize,
pub fpAddPerMachineConnection: isize,
pub fpDeletePerMachineConnection: isize,
pub fpEnumPerMachineConnections: isize,
pub fpXcvData: isize,
pub fpAddPrinterDriverEx: isize,
pub fpSplReadPrinter: isize,
pub fpDriverUnloadComplete: isize,
pub fpGetSpoolFileInfo: isize,
pub fpCommitSpoolData: isize,
pub fpCloseSpoolFileHandle: isize,
pub fpFlushPrinter: isize,
pub fpSendRecvBidiData: isize,
pub fpAddPrinterConnection2: isize,
pub fpGetPrintClassObject: isize,
pub fpReportJobProcessingProgress: isize,
pub fpEnumAndLogProvidorObjects: isize,
pub fpInternalGetPrinterDriver: isize,
pub fpFindCompatibleDriver: isize,
pub fpInstallPrinterDriverPackageFromConnection: isize,
pub fpGetJobNamedPropertyValue: isize,
pub fpSetJobNamedProperty: isize,
pub fpDeleteJobNamedProperty: isize,
pub fpEnumJobNamedProperties: isize,
pub fpPowerEvent: isize,
pub fpGetUserPropertyBag: isize,
pub fpCanShutdown: isize,
pub fpLogJobInfoForBranchOffice: isize,
pub fpRegeneratePrintDeviceCapabilities: isize,
pub fpPrintSupportOperation: isize,
pub fpIppCreateJobOnPrinter: isize,
pub fpIppGetJobAttributes: isize,
pub fpIppSetJobAttributes: isize,
pub fpIppGetPrinterAttributes: isize,
pub fpIppSetPrinterAttributes: isize,
pub fpIppCreateJobOnPrinterWithAttributes: isize,
}import "golang.org/x/sys/windows"
type PRINTPROVIDOR struct {
fpOpenPrinter uintptr
fpSetJob uintptr
fpGetJob uintptr
fpEnumJobs uintptr
fpAddPrinter uintptr
fpDeletePrinter uintptr
fpSetPrinter uintptr
fpGetPrinter uintptr
fpEnumPrinters uintptr
fpAddPrinterDriver uintptr
fpEnumPrinterDrivers uintptr
fpGetPrinterDriver uintptr
fpGetPrinterDriverDirectory uintptr
fpDeletePrinterDriver uintptr
fpAddPrintProcessor uintptr
fpEnumPrintProcessors uintptr
fpGetPrintProcessorDirectory uintptr
fpDeletePrintProcessor uintptr
fpEnumPrintProcessorDatatypes uintptr
fpStartDocPrinter uintptr
fpStartPagePrinter uintptr
fpWritePrinter uintptr
fpEndPagePrinter uintptr
fpAbortPrinter uintptr
fpReadPrinter uintptr
fpEndDocPrinter uintptr
fpAddJob uintptr
fpScheduleJob uintptr
fpGetPrinterData uintptr
fpSetPrinterData uintptr
fpWaitForPrinterChange uintptr
fpClosePrinter uintptr
fpAddForm uintptr
fpDeleteForm uintptr
fpGetForm uintptr
fpSetForm uintptr
fpEnumForms uintptr
fpEnumMonitors uintptr
fpEnumPorts uintptr
fpAddPort uintptr
fpConfigurePort uintptr
fpDeletePort uintptr
fpCreatePrinterIC uintptr
fpPlayGdiScriptOnPrinterIC uintptr
fpDeletePrinterIC uintptr
fpAddPrinterConnection uintptr
fpDeletePrinterConnection uintptr
fpPrinterMessageBox uintptr
fpAddMonitor uintptr
fpDeleteMonitor uintptr
fpResetPrinter uintptr
fpGetPrinterDriverEx uintptr
fpFindFirstPrinterChangeNotification uintptr
fpFindClosePrinterChangeNotification uintptr
fpAddPortEx uintptr
fpShutDown uintptr
fpRefreshPrinterChangeNotification uintptr
fpOpenPrinterEx uintptr
fpAddPrinterEx uintptr
fpSetPort uintptr
fpEnumPrinterData uintptr
fpDeletePrinterData uintptr
fpClusterSplOpen uintptr
fpClusterSplClose uintptr
fpClusterSplIsAlive uintptr
fpSetPrinterDataEx uintptr
fpGetPrinterDataEx uintptr
fpEnumPrinterDataEx uintptr
fpEnumPrinterKey uintptr
fpDeletePrinterDataEx uintptr
fpDeletePrinterKey uintptr
fpSeekPrinter uintptr
fpDeletePrinterDriverEx uintptr
fpAddPerMachineConnection uintptr
fpDeletePerMachineConnection uintptr
fpEnumPerMachineConnections uintptr
fpXcvData uintptr
fpAddPrinterDriverEx uintptr
fpSplReadPrinter uintptr
fpDriverUnloadComplete uintptr
fpGetSpoolFileInfo uintptr
fpCommitSpoolData uintptr
fpCloseSpoolFileHandle uintptr
fpFlushPrinter uintptr
fpSendRecvBidiData uintptr
fpAddPrinterConnection2 uintptr
fpGetPrintClassObject uintptr
fpReportJobProcessingProgress uintptr
fpEnumAndLogProvidorObjects uintptr
fpInternalGetPrinterDriver uintptr
fpFindCompatibleDriver uintptr
fpInstallPrinterDriverPackageFromConnection uintptr
fpGetJobNamedPropertyValue uintptr
fpSetJobNamedProperty uintptr
fpDeleteJobNamedProperty uintptr
fpEnumJobNamedProperties uintptr
fpPowerEvent uintptr
fpGetUserPropertyBag uintptr
fpCanShutdown uintptr
fpLogJobInfoForBranchOffice uintptr
fpRegeneratePrintDeviceCapabilities uintptr
fpPrintSupportOperation uintptr
fpIppCreateJobOnPrinter uintptr
fpIppGetJobAttributes uintptr
fpIppSetJobAttributes uintptr
fpIppGetPrinterAttributes uintptr
fpIppSetPrinterAttributes uintptr
fpIppCreateJobOnPrinterWithAttributes uintptr
}type
PRINTPROVIDOR = record
fpOpenPrinter: NativeInt;
fpSetJob: NativeInt;
fpGetJob: NativeInt;
fpEnumJobs: NativeInt;
fpAddPrinter: NativeInt;
fpDeletePrinter: NativeInt;
fpSetPrinter: NativeInt;
fpGetPrinter: NativeInt;
fpEnumPrinters: NativeInt;
fpAddPrinterDriver: NativeInt;
fpEnumPrinterDrivers: NativeInt;
fpGetPrinterDriver: NativeInt;
fpGetPrinterDriverDirectory: NativeInt;
fpDeletePrinterDriver: NativeInt;
fpAddPrintProcessor: NativeInt;
fpEnumPrintProcessors: NativeInt;
fpGetPrintProcessorDirectory: NativeInt;
fpDeletePrintProcessor: NativeInt;
fpEnumPrintProcessorDatatypes: NativeInt;
fpStartDocPrinter: NativeInt;
fpStartPagePrinter: NativeInt;
fpWritePrinter: NativeInt;
fpEndPagePrinter: NativeInt;
fpAbortPrinter: NativeInt;
fpReadPrinter: NativeInt;
fpEndDocPrinter: NativeInt;
fpAddJob: NativeInt;
fpScheduleJob: NativeInt;
fpGetPrinterData: NativeInt;
fpSetPrinterData: NativeInt;
fpWaitForPrinterChange: NativeInt;
fpClosePrinter: NativeInt;
fpAddForm: NativeInt;
fpDeleteForm: NativeInt;
fpGetForm: NativeInt;
fpSetForm: NativeInt;
fpEnumForms: NativeInt;
fpEnumMonitors: NativeInt;
fpEnumPorts: NativeInt;
fpAddPort: NativeInt;
fpConfigurePort: NativeInt;
fpDeletePort: NativeInt;
fpCreatePrinterIC: NativeInt;
fpPlayGdiScriptOnPrinterIC: NativeInt;
fpDeletePrinterIC: NativeInt;
fpAddPrinterConnection: NativeInt;
fpDeletePrinterConnection: NativeInt;
fpPrinterMessageBox: NativeInt;
fpAddMonitor: NativeInt;
fpDeleteMonitor: NativeInt;
fpResetPrinter: NativeInt;
fpGetPrinterDriverEx: NativeInt;
fpFindFirstPrinterChangeNotification: NativeInt;
fpFindClosePrinterChangeNotification: NativeInt;
fpAddPortEx: NativeInt;
fpShutDown: NativeInt;
fpRefreshPrinterChangeNotification: NativeInt;
fpOpenPrinterEx: NativeInt;
fpAddPrinterEx: NativeInt;
fpSetPort: NativeInt;
fpEnumPrinterData: NativeInt;
fpDeletePrinterData: NativeInt;
fpClusterSplOpen: NativeInt;
fpClusterSplClose: NativeInt;
fpClusterSplIsAlive: NativeInt;
fpSetPrinterDataEx: NativeInt;
fpGetPrinterDataEx: NativeInt;
fpEnumPrinterDataEx: NativeInt;
fpEnumPrinterKey: NativeInt;
fpDeletePrinterDataEx: NativeInt;
fpDeletePrinterKey: NativeInt;
fpSeekPrinter: NativeInt;
fpDeletePrinterDriverEx: NativeInt;
fpAddPerMachineConnection: NativeInt;
fpDeletePerMachineConnection: NativeInt;
fpEnumPerMachineConnections: NativeInt;
fpXcvData: NativeInt;
fpAddPrinterDriverEx: NativeInt;
fpSplReadPrinter: NativeInt;
fpDriverUnloadComplete: NativeInt;
fpGetSpoolFileInfo: NativeInt;
fpCommitSpoolData: NativeInt;
fpCloseSpoolFileHandle: NativeInt;
fpFlushPrinter: NativeInt;
fpSendRecvBidiData: NativeInt;
fpAddPrinterConnection2: NativeInt;
fpGetPrintClassObject: NativeInt;
fpReportJobProcessingProgress: NativeInt;
fpEnumAndLogProvidorObjects: NativeInt;
fpInternalGetPrinterDriver: NativeInt;
fpFindCompatibleDriver: NativeInt;
fpInstallPrinterDriverPackageFromConnection: NativeInt;
fpGetJobNamedPropertyValue: NativeInt;
fpSetJobNamedProperty: NativeInt;
fpDeleteJobNamedProperty: NativeInt;
fpEnumJobNamedProperties: NativeInt;
fpPowerEvent: NativeInt;
fpGetUserPropertyBag: NativeInt;
fpCanShutdown: NativeInt;
fpLogJobInfoForBranchOffice: NativeInt;
fpRegeneratePrintDeviceCapabilities: NativeInt;
fpPrintSupportOperation: NativeInt;
fpIppCreateJobOnPrinter: NativeInt;
fpIppGetJobAttributes: NativeInt;
fpIppSetJobAttributes: NativeInt;
fpIppGetPrinterAttributes: NativeInt;
fpIppSetPrinterAttributes: NativeInt;
fpIppCreateJobOnPrinterWithAttributes: NativeInt;
end;const PRINTPROVIDOR = extern struct {
fpOpenPrinter: isize,
fpSetJob: isize,
fpGetJob: isize,
fpEnumJobs: isize,
fpAddPrinter: isize,
fpDeletePrinter: isize,
fpSetPrinter: isize,
fpGetPrinter: isize,
fpEnumPrinters: isize,
fpAddPrinterDriver: isize,
fpEnumPrinterDrivers: isize,
fpGetPrinterDriver: isize,
fpGetPrinterDriverDirectory: isize,
fpDeletePrinterDriver: isize,
fpAddPrintProcessor: isize,
fpEnumPrintProcessors: isize,
fpGetPrintProcessorDirectory: isize,
fpDeletePrintProcessor: isize,
fpEnumPrintProcessorDatatypes: isize,
fpStartDocPrinter: isize,
fpStartPagePrinter: isize,
fpWritePrinter: isize,
fpEndPagePrinter: isize,
fpAbortPrinter: isize,
fpReadPrinter: isize,
fpEndDocPrinter: isize,
fpAddJob: isize,
fpScheduleJob: isize,
fpGetPrinterData: isize,
fpSetPrinterData: isize,
fpWaitForPrinterChange: isize,
fpClosePrinter: isize,
fpAddForm: isize,
fpDeleteForm: isize,
fpGetForm: isize,
fpSetForm: isize,
fpEnumForms: isize,
fpEnumMonitors: isize,
fpEnumPorts: isize,
fpAddPort: isize,
fpConfigurePort: isize,
fpDeletePort: isize,
fpCreatePrinterIC: isize,
fpPlayGdiScriptOnPrinterIC: isize,
fpDeletePrinterIC: isize,
fpAddPrinterConnection: isize,
fpDeletePrinterConnection: isize,
fpPrinterMessageBox: isize,
fpAddMonitor: isize,
fpDeleteMonitor: isize,
fpResetPrinter: isize,
fpGetPrinterDriverEx: isize,
fpFindFirstPrinterChangeNotification: isize,
fpFindClosePrinterChangeNotification: isize,
fpAddPortEx: isize,
fpShutDown: isize,
fpRefreshPrinterChangeNotification: isize,
fpOpenPrinterEx: isize,
fpAddPrinterEx: isize,
fpSetPort: isize,
fpEnumPrinterData: isize,
fpDeletePrinterData: isize,
fpClusterSplOpen: isize,
fpClusterSplClose: isize,
fpClusterSplIsAlive: isize,
fpSetPrinterDataEx: isize,
fpGetPrinterDataEx: isize,
fpEnumPrinterDataEx: isize,
fpEnumPrinterKey: isize,
fpDeletePrinterDataEx: isize,
fpDeletePrinterKey: isize,
fpSeekPrinter: isize,
fpDeletePrinterDriverEx: isize,
fpAddPerMachineConnection: isize,
fpDeletePerMachineConnection: isize,
fpEnumPerMachineConnections: isize,
fpXcvData: isize,
fpAddPrinterDriverEx: isize,
fpSplReadPrinter: isize,
fpDriverUnloadComplete: isize,
fpGetSpoolFileInfo: isize,
fpCommitSpoolData: isize,
fpCloseSpoolFileHandle: isize,
fpFlushPrinter: isize,
fpSendRecvBidiData: isize,
fpAddPrinterConnection2: isize,
fpGetPrintClassObject: isize,
fpReportJobProcessingProgress: isize,
fpEnumAndLogProvidorObjects: isize,
fpInternalGetPrinterDriver: isize,
fpFindCompatibleDriver: isize,
fpInstallPrinterDriverPackageFromConnection: isize,
fpGetJobNamedPropertyValue: isize,
fpSetJobNamedProperty: isize,
fpDeleteJobNamedProperty: isize,
fpEnumJobNamedProperties: isize,
fpPowerEvent: isize,
fpGetUserPropertyBag: isize,
fpCanShutdown: isize,
fpLogJobInfoForBranchOffice: isize,
fpRegeneratePrintDeviceCapabilities: isize,
fpPrintSupportOperation: isize,
fpIppCreateJobOnPrinter: isize,
fpIppGetJobAttributes: isize,
fpIppSetJobAttributes: isize,
fpIppGetPrinterAttributes: isize,
fpIppSetPrinterAttributes: isize,
fpIppCreateJobOnPrinterWithAttributes: isize,
};type
PRINTPROVIDOR {.bycopy.} = object
fpOpenPrinter: int
fpSetJob: int
fpGetJob: int
fpEnumJobs: int
fpAddPrinter: int
fpDeletePrinter: int
fpSetPrinter: int
fpGetPrinter: int
fpEnumPrinters: int
fpAddPrinterDriver: int
fpEnumPrinterDrivers: int
fpGetPrinterDriver: int
fpGetPrinterDriverDirectory: int
fpDeletePrinterDriver: int
fpAddPrintProcessor: int
fpEnumPrintProcessors: int
fpGetPrintProcessorDirectory: int
fpDeletePrintProcessor: int
fpEnumPrintProcessorDatatypes: int
fpStartDocPrinter: int
fpStartPagePrinter: int
fpWritePrinter: int
fpEndPagePrinter: int
fpAbortPrinter: int
fpReadPrinter: int
fpEndDocPrinter: int
fpAddJob: int
fpScheduleJob: int
fpGetPrinterData: int
fpSetPrinterData: int
fpWaitForPrinterChange: int
fpClosePrinter: int
fpAddForm: int
fpDeleteForm: int
fpGetForm: int
fpSetForm: int
fpEnumForms: int
fpEnumMonitors: int
fpEnumPorts: int
fpAddPort: int
fpConfigurePort: int
fpDeletePort: int
fpCreatePrinterIC: int
fpPlayGdiScriptOnPrinterIC: int
fpDeletePrinterIC: int
fpAddPrinterConnection: int
fpDeletePrinterConnection: int
fpPrinterMessageBox: int
fpAddMonitor: int
fpDeleteMonitor: int
fpResetPrinter: int
fpGetPrinterDriverEx: int
fpFindFirstPrinterChangeNotification: int
fpFindClosePrinterChangeNotification: int
fpAddPortEx: int
fpShutDown: int
fpRefreshPrinterChangeNotification: int
fpOpenPrinterEx: int
fpAddPrinterEx: int
fpSetPort: int
fpEnumPrinterData: int
fpDeletePrinterData: int
fpClusterSplOpen: int
fpClusterSplClose: int
fpClusterSplIsAlive: int
fpSetPrinterDataEx: int
fpGetPrinterDataEx: int
fpEnumPrinterDataEx: int
fpEnumPrinterKey: int
fpDeletePrinterDataEx: int
fpDeletePrinterKey: int
fpSeekPrinter: int
fpDeletePrinterDriverEx: int
fpAddPerMachineConnection: int
fpDeletePerMachineConnection: int
fpEnumPerMachineConnections: int
fpXcvData: int
fpAddPrinterDriverEx: int
fpSplReadPrinter: int
fpDriverUnloadComplete: int
fpGetSpoolFileInfo: int
fpCommitSpoolData: int
fpCloseSpoolFileHandle: int
fpFlushPrinter: int
fpSendRecvBidiData: int
fpAddPrinterConnection2: int
fpGetPrintClassObject: int
fpReportJobProcessingProgress: int
fpEnumAndLogProvidorObjects: int
fpInternalGetPrinterDriver: int
fpFindCompatibleDriver: int
fpInstallPrinterDriverPackageFromConnection: int
fpGetJobNamedPropertyValue: int
fpSetJobNamedProperty: int
fpDeleteJobNamedProperty: int
fpEnumJobNamedProperties: int
fpPowerEvent: int
fpGetUserPropertyBag: int
fpCanShutdown: int
fpLogJobInfoForBranchOffice: int
fpRegeneratePrintDeviceCapabilities: int
fpPrintSupportOperation: int
fpIppCreateJobOnPrinter: int
fpIppGetJobAttributes: int
fpIppSetJobAttributes: int
fpIppGetPrinterAttributes: int
fpIppSetPrinterAttributes: int
fpIppCreateJobOnPrinterWithAttributes: intstruct PRINTPROVIDOR
{
ptrdiff_t fpOpenPrinter;
ptrdiff_t fpSetJob;
ptrdiff_t fpGetJob;
ptrdiff_t fpEnumJobs;
ptrdiff_t fpAddPrinter;
ptrdiff_t fpDeletePrinter;
ptrdiff_t fpSetPrinter;
ptrdiff_t fpGetPrinter;
ptrdiff_t fpEnumPrinters;
ptrdiff_t fpAddPrinterDriver;
ptrdiff_t fpEnumPrinterDrivers;
ptrdiff_t fpGetPrinterDriver;
ptrdiff_t fpGetPrinterDriverDirectory;
ptrdiff_t fpDeletePrinterDriver;
ptrdiff_t fpAddPrintProcessor;
ptrdiff_t fpEnumPrintProcessors;
ptrdiff_t fpGetPrintProcessorDirectory;
ptrdiff_t fpDeletePrintProcessor;
ptrdiff_t fpEnumPrintProcessorDatatypes;
ptrdiff_t fpStartDocPrinter;
ptrdiff_t fpStartPagePrinter;
ptrdiff_t fpWritePrinter;
ptrdiff_t fpEndPagePrinter;
ptrdiff_t fpAbortPrinter;
ptrdiff_t fpReadPrinter;
ptrdiff_t fpEndDocPrinter;
ptrdiff_t fpAddJob;
ptrdiff_t fpScheduleJob;
ptrdiff_t fpGetPrinterData;
ptrdiff_t fpSetPrinterData;
ptrdiff_t fpWaitForPrinterChange;
ptrdiff_t fpClosePrinter;
ptrdiff_t fpAddForm;
ptrdiff_t fpDeleteForm;
ptrdiff_t fpGetForm;
ptrdiff_t fpSetForm;
ptrdiff_t fpEnumForms;
ptrdiff_t fpEnumMonitors;
ptrdiff_t fpEnumPorts;
ptrdiff_t fpAddPort;
ptrdiff_t fpConfigurePort;
ptrdiff_t fpDeletePort;
ptrdiff_t fpCreatePrinterIC;
ptrdiff_t fpPlayGdiScriptOnPrinterIC;
ptrdiff_t fpDeletePrinterIC;
ptrdiff_t fpAddPrinterConnection;
ptrdiff_t fpDeletePrinterConnection;
ptrdiff_t fpPrinterMessageBox;
ptrdiff_t fpAddMonitor;
ptrdiff_t fpDeleteMonitor;
ptrdiff_t fpResetPrinter;
ptrdiff_t fpGetPrinterDriverEx;
ptrdiff_t fpFindFirstPrinterChangeNotification;
ptrdiff_t fpFindClosePrinterChangeNotification;
ptrdiff_t fpAddPortEx;
ptrdiff_t fpShutDown;
ptrdiff_t fpRefreshPrinterChangeNotification;
ptrdiff_t fpOpenPrinterEx;
ptrdiff_t fpAddPrinterEx;
ptrdiff_t fpSetPort;
ptrdiff_t fpEnumPrinterData;
ptrdiff_t fpDeletePrinterData;
ptrdiff_t fpClusterSplOpen;
ptrdiff_t fpClusterSplClose;
ptrdiff_t fpClusterSplIsAlive;
ptrdiff_t fpSetPrinterDataEx;
ptrdiff_t fpGetPrinterDataEx;
ptrdiff_t fpEnumPrinterDataEx;
ptrdiff_t fpEnumPrinterKey;
ptrdiff_t fpDeletePrinterDataEx;
ptrdiff_t fpDeletePrinterKey;
ptrdiff_t fpSeekPrinter;
ptrdiff_t fpDeletePrinterDriverEx;
ptrdiff_t fpAddPerMachineConnection;
ptrdiff_t fpDeletePerMachineConnection;
ptrdiff_t fpEnumPerMachineConnections;
ptrdiff_t fpXcvData;
ptrdiff_t fpAddPrinterDriverEx;
ptrdiff_t fpSplReadPrinter;
ptrdiff_t fpDriverUnloadComplete;
ptrdiff_t fpGetSpoolFileInfo;
ptrdiff_t fpCommitSpoolData;
ptrdiff_t fpCloseSpoolFileHandle;
ptrdiff_t fpFlushPrinter;
ptrdiff_t fpSendRecvBidiData;
ptrdiff_t fpAddPrinterConnection2;
ptrdiff_t fpGetPrintClassObject;
ptrdiff_t fpReportJobProcessingProgress;
ptrdiff_t fpEnumAndLogProvidorObjects;
ptrdiff_t fpInternalGetPrinterDriver;
ptrdiff_t fpFindCompatibleDriver;
ptrdiff_t fpInstallPrinterDriverPackageFromConnection;
ptrdiff_t fpGetJobNamedPropertyValue;
ptrdiff_t fpSetJobNamedProperty;
ptrdiff_t fpDeleteJobNamedProperty;
ptrdiff_t fpEnumJobNamedProperties;
ptrdiff_t fpPowerEvent;
ptrdiff_t fpGetUserPropertyBag;
ptrdiff_t fpCanShutdown;
ptrdiff_t fpLogJobInfoForBranchOffice;
ptrdiff_t fpRegeneratePrintDeviceCapabilities;
ptrdiff_t fpPrintSupportOperation;
ptrdiff_t fpIppCreateJobOnPrinter;
ptrdiff_t fpIppGetJobAttributes;
ptrdiff_t fpIppSetJobAttributes;
ptrdiff_t fpIppGetPrinterAttributes;
ptrdiff_t fpIppSetPrinterAttributes;
ptrdiff_t fpIppCreateJobOnPrinterWithAttributes;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; PRINTPROVIDOR サイズ: 432 バイト(x86)
dim st, 108 ; 4byte整数×108(構造体サイズ 432 / 4 切り上げ)
; fpOpenPrinter : INT_PTR (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; fpSetJob : INT_PTR (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; fpGetJob : INT_PTR (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; fpEnumJobs : INT_PTR (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; fpAddPrinter : INT_PTR (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; fpDeletePrinter : INT_PTR (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; fpSetPrinter : INT_PTR (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; fpGetPrinter : INT_PTR (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; fpEnumPrinters : INT_PTR (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; fpAddPrinterDriver : INT_PTR (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; fpEnumPrinterDrivers : INT_PTR (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; fpGetPrinterDriver : INT_PTR (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; fpGetPrinterDriverDirectory : INT_PTR (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; fpDeletePrinterDriver : INT_PTR (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; fpAddPrintProcessor : INT_PTR (+56, 4byte) st.14 = 値 / 値 = st.14 (lpoke/lpeek も可)
; fpEnumPrintProcessors : INT_PTR (+60, 4byte) st.15 = 値 / 値 = st.15 (lpoke/lpeek も可)
; fpGetPrintProcessorDirectory : INT_PTR (+64, 4byte) st.16 = 値 / 値 = st.16 (lpoke/lpeek も可)
; fpDeletePrintProcessor : INT_PTR (+68, 4byte) st.17 = 値 / 値 = st.17 (lpoke/lpeek も可)
; fpEnumPrintProcessorDatatypes : INT_PTR (+72, 4byte) st.18 = 値 / 値 = st.18 (lpoke/lpeek も可)
; fpStartDocPrinter : INT_PTR (+76, 4byte) st.19 = 値 / 値 = st.19 (lpoke/lpeek も可)
; fpStartPagePrinter : INT_PTR (+80, 4byte) st.20 = 値 / 値 = st.20 (lpoke/lpeek も可)
; fpWritePrinter : INT_PTR (+84, 4byte) st.21 = 値 / 値 = st.21 (lpoke/lpeek も可)
; fpEndPagePrinter : INT_PTR (+88, 4byte) st.22 = 値 / 値 = st.22 (lpoke/lpeek も可)
; fpAbortPrinter : INT_PTR (+92, 4byte) st.23 = 値 / 値 = st.23 (lpoke/lpeek も可)
; fpReadPrinter : INT_PTR (+96, 4byte) st.24 = 値 / 値 = st.24 (lpoke/lpeek も可)
; fpEndDocPrinter : INT_PTR (+100, 4byte) st.25 = 値 / 値 = st.25 (lpoke/lpeek も可)
; fpAddJob : INT_PTR (+104, 4byte) st.26 = 値 / 値 = st.26 (lpoke/lpeek も可)
; fpScheduleJob : INT_PTR (+108, 4byte) st.27 = 値 / 値 = st.27 (lpoke/lpeek も可)
; fpGetPrinterData : INT_PTR (+112, 4byte) st.28 = 値 / 値 = st.28 (lpoke/lpeek も可)
; fpSetPrinterData : INT_PTR (+116, 4byte) st.29 = 値 / 値 = st.29 (lpoke/lpeek も可)
; fpWaitForPrinterChange : INT_PTR (+120, 4byte) st.30 = 値 / 値 = st.30 (lpoke/lpeek も可)
; fpClosePrinter : INT_PTR (+124, 4byte) st.31 = 値 / 値 = st.31 (lpoke/lpeek も可)
; fpAddForm : INT_PTR (+128, 4byte) st.32 = 値 / 値 = st.32 (lpoke/lpeek も可)
; fpDeleteForm : INT_PTR (+132, 4byte) st.33 = 値 / 値 = st.33 (lpoke/lpeek も可)
; fpGetForm : INT_PTR (+136, 4byte) st.34 = 値 / 値 = st.34 (lpoke/lpeek も可)
; fpSetForm : INT_PTR (+140, 4byte) st.35 = 値 / 値 = st.35 (lpoke/lpeek も可)
; fpEnumForms : INT_PTR (+144, 4byte) st.36 = 値 / 値 = st.36 (lpoke/lpeek も可)
; fpEnumMonitors : INT_PTR (+148, 4byte) st.37 = 値 / 値 = st.37 (lpoke/lpeek も可)
; fpEnumPorts : INT_PTR (+152, 4byte) st.38 = 値 / 値 = st.38 (lpoke/lpeek も可)
; fpAddPort : INT_PTR (+156, 4byte) st.39 = 値 / 値 = st.39 (lpoke/lpeek も可)
; fpConfigurePort : INT_PTR (+160, 4byte) st.40 = 値 / 値 = st.40 (lpoke/lpeek も可)
; fpDeletePort : INT_PTR (+164, 4byte) st.41 = 値 / 値 = st.41 (lpoke/lpeek も可)
; fpCreatePrinterIC : INT_PTR (+168, 4byte) st.42 = 値 / 値 = st.42 (lpoke/lpeek も可)
; fpPlayGdiScriptOnPrinterIC : INT_PTR (+172, 4byte) st.43 = 値 / 値 = st.43 (lpoke/lpeek も可)
; fpDeletePrinterIC : INT_PTR (+176, 4byte) st.44 = 値 / 値 = st.44 (lpoke/lpeek も可)
; fpAddPrinterConnection : INT_PTR (+180, 4byte) st.45 = 値 / 値 = st.45 (lpoke/lpeek も可)
; fpDeletePrinterConnection : INT_PTR (+184, 4byte) st.46 = 値 / 値 = st.46 (lpoke/lpeek も可)
; fpPrinterMessageBox : INT_PTR (+188, 4byte) st.47 = 値 / 値 = st.47 (lpoke/lpeek も可)
; fpAddMonitor : INT_PTR (+192, 4byte) st.48 = 値 / 値 = st.48 (lpoke/lpeek も可)
; fpDeleteMonitor : INT_PTR (+196, 4byte) st.49 = 値 / 値 = st.49 (lpoke/lpeek も可)
; fpResetPrinter : INT_PTR (+200, 4byte) st.50 = 値 / 値 = st.50 (lpoke/lpeek も可)
; fpGetPrinterDriverEx : INT_PTR (+204, 4byte) st.51 = 値 / 値 = st.51 (lpoke/lpeek も可)
; fpFindFirstPrinterChangeNotification : INT_PTR (+208, 4byte) st.52 = 値 / 値 = st.52 (lpoke/lpeek も可)
; fpFindClosePrinterChangeNotification : INT_PTR (+212, 4byte) st.53 = 値 / 値 = st.53 (lpoke/lpeek も可)
; fpAddPortEx : INT_PTR (+216, 4byte) st.54 = 値 / 値 = st.54 (lpoke/lpeek も可)
; fpShutDown : INT_PTR (+220, 4byte) st.55 = 値 / 値 = st.55 (lpoke/lpeek も可)
; fpRefreshPrinterChangeNotification : INT_PTR (+224, 4byte) st.56 = 値 / 値 = st.56 (lpoke/lpeek も可)
; fpOpenPrinterEx : INT_PTR (+228, 4byte) st.57 = 値 / 値 = st.57 (lpoke/lpeek も可)
; fpAddPrinterEx : INT_PTR (+232, 4byte) st.58 = 値 / 値 = st.58 (lpoke/lpeek も可)
; fpSetPort : INT_PTR (+236, 4byte) st.59 = 値 / 値 = st.59 (lpoke/lpeek も可)
; fpEnumPrinterData : INT_PTR (+240, 4byte) st.60 = 値 / 値 = st.60 (lpoke/lpeek も可)
; fpDeletePrinterData : INT_PTR (+244, 4byte) st.61 = 値 / 値 = st.61 (lpoke/lpeek も可)
; fpClusterSplOpen : INT_PTR (+248, 4byte) st.62 = 値 / 値 = st.62 (lpoke/lpeek も可)
; fpClusterSplClose : INT_PTR (+252, 4byte) st.63 = 値 / 値 = st.63 (lpoke/lpeek も可)
; fpClusterSplIsAlive : INT_PTR (+256, 4byte) st.64 = 値 / 値 = st.64 (lpoke/lpeek も可)
; fpSetPrinterDataEx : INT_PTR (+260, 4byte) st.65 = 値 / 値 = st.65 (lpoke/lpeek も可)
; fpGetPrinterDataEx : INT_PTR (+264, 4byte) st.66 = 値 / 値 = st.66 (lpoke/lpeek も可)
; fpEnumPrinterDataEx : INT_PTR (+268, 4byte) st.67 = 値 / 値 = st.67 (lpoke/lpeek も可)
; fpEnumPrinterKey : INT_PTR (+272, 4byte) st.68 = 値 / 値 = st.68 (lpoke/lpeek も可)
; fpDeletePrinterDataEx : INT_PTR (+276, 4byte) st.69 = 値 / 値 = st.69 (lpoke/lpeek も可)
; fpDeletePrinterKey : INT_PTR (+280, 4byte) st.70 = 値 / 値 = st.70 (lpoke/lpeek も可)
; fpSeekPrinter : INT_PTR (+284, 4byte) st.71 = 値 / 値 = st.71 (lpoke/lpeek も可)
; fpDeletePrinterDriverEx : INT_PTR (+288, 4byte) st.72 = 値 / 値 = st.72 (lpoke/lpeek も可)
; fpAddPerMachineConnection : INT_PTR (+292, 4byte) st.73 = 値 / 値 = st.73 (lpoke/lpeek も可)
; fpDeletePerMachineConnection : INT_PTR (+296, 4byte) st.74 = 値 / 値 = st.74 (lpoke/lpeek も可)
; fpEnumPerMachineConnections : INT_PTR (+300, 4byte) st.75 = 値 / 値 = st.75 (lpoke/lpeek も可)
; fpXcvData : INT_PTR (+304, 4byte) st.76 = 値 / 値 = st.76 (lpoke/lpeek も可)
; fpAddPrinterDriverEx : INT_PTR (+308, 4byte) st.77 = 値 / 値 = st.77 (lpoke/lpeek も可)
; fpSplReadPrinter : INT_PTR (+312, 4byte) st.78 = 値 / 値 = st.78 (lpoke/lpeek も可)
; fpDriverUnloadComplete : INT_PTR (+316, 4byte) st.79 = 値 / 値 = st.79 (lpoke/lpeek も可)
; fpGetSpoolFileInfo : INT_PTR (+320, 4byte) st.80 = 値 / 値 = st.80 (lpoke/lpeek も可)
; fpCommitSpoolData : INT_PTR (+324, 4byte) st.81 = 値 / 値 = st.81 (lpoke/lpeek も可)
; fpCloseSpoolFileHandle : INT_PTR (+328, 4byte) st.82 = 値 / 値 = st.82 (lpoke/lpeek も可)
; fpFlushPrinter : INT_PTR (+332, 4byte) st.83 = 値 / 値 = st.83 (lpoke/lpeek も可)
; fpSendRecvBidiData : INT_PTR (+336, 4byte) st.84 = 値 / 値 = st.84 (lpoke/lpeek も可)
; fpAddPrinterConnection2 : INT_PTR (+340, 4byte) st.85 = 値 / 値 = st.85 (lpoke/lpeek も可)
; fpGetPrintClassObject : INT_PTR (+344, 4byte) st.86 = 値 / 値 = st.86 (lpoke/lpeek も可)
; fpReportJobProcessingProgress : INT_PTR (+348, 4byte) st.87 = 値 / 値 = st.87 (lpoke/lpeek も可)
; fpEnumAndLogProvidorObjects : INT_PTR (+352, 4byte) st.88 = 値 / 値 = st.88 (lpoke/lpeek も可)
; fpInternalGetPrinterDriver : INT_PTR (+356, 4byte) st.89 = 値 / 値 = st.89 (lpoke/lpeek も可)
; fpFindCompatibleDriver : INT_PTR (+360, 4byte) st.90 = 値 / 値 = st.90 (lpoke/lpeek も可)
; fpInstallPrinterDriverPackageFromConnection : INT_PTR (+364, 4byte) st.91 = 値 / 値 = st.91 (lpoke/lpeek も可)
; fpGetJobNamedPropertyValue : INT_PTR (+368, 4byte) st.92 = 値 / 値 = st.92 (lpoke/lpeek も可)
; fpSetJobNamedProperty : INT_PTR (+372, 4byte) st.93 = 値 / 値 = st.93 (lpoke/lpeek も可)
; fpDeleteJobNamedProperty : INT_PTR (+376, 4byte) st.94 = 値 / 値 = st.94 (lpoke/lpeek も可)
; fpEnumJobNamedProperties : INT_PTR (+380, 4byte) st.95 = 値 / 値 = st.95 (lpoke/lpeek も可)
; fpPowerEvent : INT_PTR (+384, 4byte) st.96 = 値 / 値 = st.96 (lpoke/lpeek も可)
; fpGetUserPropertyBag : INT_PTR (+388, 4byte) st.97 = 値 / 値 = st.97 (lpoke/lpeek も可)
; fpCanShutdown : INT_PTR (+392, 4byte) st.98 = 値 / 値 = st.98 (lpoke/lpeek も可)
; fpLogJobInfoForBranchOffice : INT_PTR (+396, 4byte) st.99 = 値 / 値 = st.99 (lpoke/lpeek も可)
; fpRegeneratePrintDeviceCapabilities : INT_PTR (+400, 4byte) st.100 = 値 / 値 = st.100 (lpoke/lpeek も可)
; fpPrintSupportOperation : INT_PTR (+404, 4byte) st.101 = 値 / 値 = st.101 (lpoke/lpeek も可)
; fpIppCreateJobOnPrinter : INT_PTR (+408, 4byte) st.102 = 値 / 値 = st.102 (lpoke/lpeek も可)
; fpIppGetJobAttributes : INT_PTR (+412, 4byte) st.103 = 値 / 値 = st.103 (lpoke/lpeek も可)
; fpIppSetJobAttributes : INT_PTR (+416, 4byte) st.104 = 値 / 値 = st.104 (lpoke/lpeek も可)
; fpIppGetPrinterAttributes : INT_PTR (+420, 4byte) st.105 = 値 / 値 = st.105 (lpoke/lpeek も可)
; fpIppSetPrinterAttributes : INT_PTR (+424, 4byte) st.106 = 値 / 値 = st.106 (lpoke/lpeek も可)
; fpIppCreateJobOnPrinterWithAttributes : INT_PTR (+428, 4byte) st.107 = 値 / 値 = st.107 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; PRINTPROVIDOR サイズ: 864 バイト(x64)
dim st, 216 ; 4byte整数×216(構造体サイズ 864 / 4 切り上げ)
; fpOpenPrinter : INT_PTR (+0, 8byte) qpoke st,0,値 / qpeek(st,0) ※IronHSPのみ。3.7/3.8は lpoke st,0,下位 : lpoke st,4,上位
; fpSetJob : INT_PTR (+8, 8byte) qpoke st,8,値 / qpeek(st,8) ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; fpGetJob : INT_PTR (+16, 8byte) qpoke st,16,値 / qpeek(st,16) ※IronHSPのみ。3.7/3.8は lpoke st,16,下位 : lpoke st,20,上位
; fpEnumJobs : INT_PTR (+24, 8byte) qpoke st,24,値 / qpeek(st,24) ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; fpAddPrinter : INT_PTR (+32, 8byte) qpoke st,32,値 / qpeek(st,32) ※IronHSPのみ。3.7/3.8は lpoke st,32,下位 : lpoke st,36,上位
; fpDeletePrinter : INT_PTR (+40, 8byte) qpoke st,40,値 / qpeek(st,40) ※IronHSPのみ。3.7/3.8は lpoke st,40,下位 : lpoke st,44,上位
; fpSetPrinter : INT_PTR (+48, 8byte) qpoke st,48,値 / qpeek(st,48) ※IronHSPのみ。3.7/3.8は lpoke st,48,下位 : lpoke st,52,上位
; fpGetPrinter : INT_PTR (+56, 8byte) qpoke st,56,値 / qpeek(st,56) ※IronHSPのみ。3.7/3.8は lpoke st,56,下位 : lpoke st,60,上位
; fpEnumPrinters : INT_PTR (+64, 8byte) qpoke st,64,値 / qpeek(st,64) ※IronHSPのみ。3.7/3.8は lpoke st,64,下位 : lpoke st,68,上位
; fpAddPrinterDriver : INT_PTR (+72, 8byte) qpoke st,72,値 / qpeek(st,72) ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; fpEnumPrinterDrivers : INT_PTR (+80, 8byte) qpoke st,80,値 / qpeek(st,80) ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; fpGetPrinterDriver : INT_PTR (+88, 8byte) qpoke st,88,値 / qpeek(st,88) ※IronHSPのみ。3.7/3.8は lpoke st,88,下位 : lpoke st,92,上位
; fpGetPrinterDriverDirectory : INT_PTR (+96, 8byte) qpoke st,96,値 / qpeek(st,96) ※IronHSPのみ。3.7/3.8は lpoke st,96,下位 : lpoke st,100,上位
; fpDeletePrinterDriver : INT_PTR (+104, 8byte) qpoke st,104,値 / qpeek(st,104) ※IronHSPのみ。3.7/3.8は lpoke st,104,下位 : lpoke st,108,上位
; fpAddPrintProcessor : INT_PTR (+112, 8byte) qpoke st,112,値 / qpeek(st,112) ※IronHSPのみ。3.7/3.8は lpoke st,112,下位 : lpoke st,116,上位
; fpEnumPrintProcessors : INT_PTR (+120, 8byte) qpoke st,120,値 / qpeek(st,120) ※IronHSPのみ。3.7/3.8は lpoke st,120,下位 : lpoke st,124,上位
; fpGetPrintProcessorDirectory : INT_PTR (+128, 8byte) qpoke st,128,値 / qpeek(st,128) ※IronHSPのみ。3.7/3.8は lpoke st,128,下位 : lpoke st,132,上位
; fpDeletePrintProcessor : INT_PTR (+136, 8byte) qpoke st,136,値 / qpeek(st,136) ※IronHSPのみ。3.7/3.8は lpoke st,136,下位 : lpoke st,140,上位
; fpEnumPrintProcessorDatatypes : INT_PTR (+144, 8byte) qpoke st,144,値 / qpeek(st,144) ※IronHSPのみ。3.7/3.8は lpoke st,144,下位 : lpoke st,148,上位
; fpStartDocPrinter : INT_PTR (+152, 8byte) qpoke st,152,値 / qpeek(st,152) ※IronHSPのみ。3.7/3.8は lpoke st,152,下位 : lpoke st,156,上位
; fpStartPagePrinter : INT_PTR (+160, 8byte) qpoke st,160,値 / qpeek(st,160) ※IronHSPのみ。3.7/3.8は lpoke st,160,下位 : lpoke st,164,上位
; fpWritePrinter : INT_PTR (+168, 8byte) qpoke st,168,値 / qpeek(st,168) ※IronHSPのみ。3.7/3.8は lpoke st,168,下位 : lpoke st,172,上位
; fpEndPagePrinter : INT_PTR (+176, 8byte) qpoke st,176,値 / qpeek(st,176) ※IronHSPのみ。3.7/3.8は lpoke st,176,下位 : lpoke st,180,上位
; fpAbortPrinter : INT_PTR (+184, 8byte) qpoke st,184,値 / qpeek(st,184) ※IronHSPのみ。3.7/3.8は lpoke st,184,下位 : lpoke st,188,上位
; fpReadPrinter : INT_PTR (+192, 8byte) qpoke st,192,値 / qpeek(st,192) ※IronHSPのみ。3.7/3.8は lpoke st,192,下位 : lpoke st,196,上位
; fpEndDocPrinter : INT_PTR (+200, 8byte) qpoke st,200,値 / qpeek(st,200) ※IronHSPのみ。3.7/3.8は lpoke st,200,下位 : lpoke st,204,上位
; fpAddJob : INT_PTR (+208, 8byte) qpoke st,208,値 / qpeek(st,208) ※IronHSPのみ。3.7/3.8は lpoke st,208,下位 : lpoke st,212,上位
; fpScheduleJob : INT_PTR (+216, 8byte) qpoke st,216,値 / qpeek(st,216) ※IronHSPのみ。3.7/3.8は lpoke st,216,下位 : lpoke st,220,上位
; fpGetPrinterData : INT_PTR (+224, 8byte) qpoke st,224,値 / qpeek(st,224) ※IronHSPのみ。3.7/3.8は lpoke st,224,下位 : lpoke st,228,上位
; fpSetPrinterData : INT_PTR (+232, 8byte) qpoke st,232,値 / qpeek(st,232) ※IronHSPのみ。3.7/3.8は lpoke st,232,下位 : lpoke st,236,上位
; fpWaitForPrinterChange : INT_PTR (+240, 8byte) qpoke st,240,値 / qpeek(st,240) ※IronHSPのみ。3.7/3.8は lpoke st,240,下位 : lpoke st,244,上位
; fpClosePrinter : INT_PTR (+248, 8byte) qpoke st,248,値 / qpeek(st,248) ※IronHSPのみ。3.7/3.8は lpoke st,248,下位 : lpoke st,252,上位
; fpAddForm : INT_PTR (+256, 8byte) qpoke st,256,値 / qpeek(st,256) ※IronHSPのみ。3.7/3.8は lpoke st,256,下位 : lpoke st,260,上位
; fpDeleteForm : INT_PTR (+264, 8byte) qpoke st,264,値 / qpeek(st,264) ※IronHSPのみ。3.7/3.8は lpoke st,264,下位 : lpoke st,268,上位
; fpGetForm : INT_PTR (+272, 8byte) qpoke st,272,値 / qpeek(st,272) ※IronHSPのみ。3.7/3.8は lpoke st,272,下位 : lpoke st,276,上位
; fpSetForm : INT_PTR (+280, 8byte) qpoke st,280,値 / qpeek(st,280) ※IronHSPのみ。3.7/3.8は lpoke st,280,下位 : lpoke st,284,上位
; fpEnumForms : INT_PTR (+288, 8byte) qpoke st,288,値 / qpeek(st,288) ※IronHSPのみ。3.7/3.8は lpoke st,288,下位 : lpoke st,292,上位
; fpEnumMonitors : INT_PTR (+296, 8byte) qpoke st,296,値 / qpeek(st,296) ※IronHSPのみ。3.7/3.8は lpoke st,296,下位 : lpoke st,300,上位
; fpEnumPorts : INT_PTR (+304, 8byte) qpoke st,304,値 / qpeek(st,304) ※IronHSPのみ。3.7/3.8は lpoke st,304,下位 : lpoke st,308,上位
; fpAddPort : INT_PTR (+312, 8byte) qpoke st,312,値 / qpeek(st,312) ※IronHSPのみ。3.7/3.8は lpoke st,312,下位 : lpoke st,316,上位
; fpConfigurePort : INT_PTR (+320, 8byte) qpoke st,320,値 / qpeek(st,320) ※IronHSPのみ。3.7/3.8は lpoke st,320,下位 : lpoke st,324,上位
; fpDeletePort : INT_PTR (+328, 8byte) qpoke st,328,値 / qpeek(st,328) ※IronHSPのみ。3.7/3.8は lpoke st,328,下位 : lpoke st,332,上位
; fpCreatePrinterIC : INT_PTR (+336, 8byte) qpoke st,336,値 / qpeek(st,336) ※IronHSPのみ。3.7/3.8は lpoke st,336,下位 : lpoke st,340,上位
; fpPlayGdiScriptOnPrinterIC : INT_PTR (+344, 8byte) qpoke st,344,値 / qpeek(st,344) ※IronHSPのみ。3.7/3.8は lpoke st,344,下位 : lpoke st,348,上位
; fpDeletePrinterIC : INT_PTR (+352, 8byte) qpoke st,352,値 / qpeek(st,352) ※IronHSPのみ。3.7/3.8は lpoke st,352,下位 : lpoke st,356,上位
; fpAddPrinterConnection : INT_PTR (+360, 8byte) qpoke st,360,値 / qpeek(st,360) ※IronHSPのみ。3.7/3.8は lpoke st,360,下位 : lpoke st,364,上位
; fpDeletePrinterConnection : INT_PTR (+368, 8byte) qpoke st,368,値 / qpeek(st,368) ※IronHSPのみ。3.7/3.8は lpoke st,368,下位 : lpoke st,372,上位
; fpPrinterMessageBox : INT_PTR (+376, 8byte) qpoke st,376,値 / qpeek(st,376) ※IronHSPのみ。3.7/3.8は lpoke st,376,下位 : lpoke st,380,上位
; fpAddMonitor : INT_PTR (+384, 8byte) qpoke st,384,値 / qpeek(st,384) ※IronHSPのみ。3.7/3.8は lpoke st,384,下位 : lpoke st,388,上位
; fpDeleteMonitor : INT_PTR (+392, 8byte) qpoke st,392,値 / qpeek(st,392) ※IronHSPのみ。3.7/3.8は lpoke st,392,下位 : lpoke st,396,上位
; fpResetPrinter : INT_PTR (+400, 8byte) qpoke st,400,値 / qpeek(st,400) ※IronHSPのみ。3.7/3.8は lpoke st,400,下位 : lpoke st,404,上位
; fpGetPrinterDriverEx : INT_PTR (+408, 8byte) qpoke st,408,値 / qpeek(st,408) ※IronHSPのみ。3.7/3.8は lpoke st,408,下位 : lpoke st,412,上位
; fpFindFirstPrinterChangeNotification : INT_PTR (+416, 8byte) qpoke st,416,値 / qpeek(st,416) ※IronHSPのみ。3.7/3.8は lpoke st,416,下位 : lpoke st,420,上位
; fpFindClosePrinterChangeNotification : INT_PTR (+424, 8byte) qpoke st,424,値 / qpeek(st,424) ※IronHSPのみ。3.7/3.8は lpoke st,424,下位 : lpoke st,428,上位
; fpAddPortEx : INT_PTR (+432, 8byte) qpoke st,432,値 / qpeek(st,432) ※IronHSPのみ。3.7/3.8は lpoke st,432,下位 : lpoke st,436,上位
; fpShutDown : INT_PTR (+440, 8byte) qpoke st,440,値 / qpeek(st,440) ※IronHSPのみ。3.7/3.8は lpoke st,440,下位 : lpoke st,444,上位
; fpRefreshPrinterChangeNotification : INT_PTR (+448, 8byte) qpoke st,448,値 / qpeek(st,448) ※IronHSPのみ。3.7/3.8は lpoke st,448,下位 : lpoke st,452,上位
; fpOpenPrinterEx : INT_PTR (+456, 8byte) qpoke st,456,値 / qpeek(st,456) ※IronHSPのみ。3.7/3.8は lpoke st,456,下位 : lpoke st,460,上位
; fpAddPrinterEx : INT_PTR (+464, 8byte) qpoke st,464,値 / qpeek(st,464) ※IronHSPのみ。3.7/3.8は lpoke st,464,下位 : lpoke st,468,上位
; fpSetPort : INT_PTR (+472, 8byte) qpoke st,472,値 / qpeek(st,472) ※IronHSPのみ。3.7/3.8は lpoke st,472,下位 : lpoke st,476,上位
; fpEnumPrinterData : INT_PTR (+480, 8byte) qpoke st,480,値 / qpeek(st,480) ※IronHSPのみ。3.7/3.8は lpoke st,480,下位 : lpoke st,484,上位
; fpDeletePrinterData : INT_PTR (+488, 8byte) qpoke st,488,値 / qpeek(st,488) ※IronHSPのみ。3.7/3.8は lpoke st,488,下位 : lpoke st,492,上位
; fpClusterSplOpen : INT_PTR (+496, 8byte) qpoke st,496,値 / qpeek(st,496) ※IronHSPのみ。3.7/3.8は lpoke st,496,下位 : lpoke st,500,上位
; fpClusterSplClose : INT_PTR (+504, 8byte) qpoke st,504,値 / qpeek(st,504) ※IronHSPのみ。3.7/3.8は lpoke st,504,下位 : lpoke st,508,上位
; fpClusterSplIsAlive : INT_PTR (+512, 8byte) qpoke st,512,値 / qpeek(st,512) ※IronHSPのみ。3.7/3.8は lpoke st,512,下位 : lpoke st,516,上位
; fpSetPrinterDataEx : INT_PTR (+520, 8byte) qpoke st,520,値 / qpeek(st,520) ※IronHSPのみ。3.7/3.8は lpoke st,520,下位 : lpoke st,524,上位
; fpGetPrinterDataEx : INT_PTR (+528, 8byte) qpoke st,528,値 / qpeek(st,528) ※IronHSPのみ。3.7/3.8は lpoke st,528,下位 : lpoke st,532,上位
; fpEnumPrinterDataEx : INT_PTR (+536, 8byte) qpoke st,536,値 / qpeek(st,536) ※IronHSPのみ。3.7/3.8は lpoke st,536,下位 : lpoke st,540,上位
; fpEnumPrinterKey : INT_PTR (+544, 8byte) qpoke st,544,値 / qpeek(st,544) ※IronHSPのみ。3.7/3.8は lpoke st,544,下位 : lpoke st,548,上位
; fpDeletePrinterDataEx : INT_PTR (+552, 8byte) qpoke st,552,値 / qpeek(st,552) ※IronHSPのみ。3.7/3.8は lpoke st,552,下位 : lpoke st,556,上位
; fpDeletePrinterKey : INT_PTR (+560, 8byte) qpoke st,560,値 / qpeek(st,560) ※IronHSPのみ。3.7/3.8は lpoke st,560,下位 : lpoke st,564,上位
; fpSeekPrinter : INT_PTR (+568, 8byte) qpoke st,568,値 / qpeek(st,568) ※IronHSPのみ。3.7/3.8は lpoke st,568,下位 : lpoke st,572,上位
; fpDeletePrinterDriverEx : INT_PTR (+576, 8byte) qpoke st,576,値 / qpeek(st,576) ※IronHSPのみ。3.7/3.8は lpoke st,576,下位 : lpoke st,580,上位
; fpAddPerMachineConnection : INT_PTR (+584, 8byte) qpoke st,584,値 / qpeek(st,584) ※IronHSPのみ。3.7/3.8は lpoke st,584,下位 : lpoke st,588,上位
; fpDeletePerMachineConnection : INT_PTR (+592, 8byte) qpoke st,592,値 / qpeek(st,592) ※IronHSPのみ。3.7/3.8は lpoke st,592,下位 : lpoke st,596,上位
; fpEnumPerMachineConnections : INT_PTR (+600, 8byte) qpoke st,600,値 / qpeek(st,600) ※IronHSPのみ。3.7/3.8は lpoke st,600,下位 : lpoke st,604,上位
; fpXcvData : INT_PTR (+608, 8byte) qpoke st,608,値 / qpeek(st,608) ※IronHSPのみ。3.7/3.8は lpoke st,608,下位 : lpoke st,612,上位
; fpAddPrinterDriverEx : INT_PTR (+616, 8byte) qpoke st,616,値 / qpeek(st,616) ※IronHSPのみ。3.7/3.8は lpoke st,616,下位 : lpoke st,620,上位
; fpSplReadPrinter : INT_PTR (+624, 8byte) qpoke st,624,値 / qpeek(st,624) ※IronHSPのみ。3.7/3.8は lpoke st,624,下位 : lpoke st,628,上位
; fpDriverUnloadComplete : INT_PTR (+632, 8byte) qpoke st,632,値 / qpeek(st,632) ※IronHSPのみ。3.7/3.8は lpoke st,632,下位 : lpoke st,636,上位
; fpGetSpoolFileInfo : INT_PTR (+640, 8byte) qpoke st,640,値 / qpeek(st,640) ※IronHSPのみ。3.7/3.8は lpoke st,640,下位 : lpoke st,644,上位
; fpCommitSpoolData : INT_PTR (+648, 8byte) qpoke st,648,値 / qpeek(st,648) ※IronHSPのみ。3.7/3.8は lpoke st,648,下位 : lpoke st,652,上位
; fpCloseSpoolFileHandle : INT_PTR (+656, 8byte) qpoke st,656,値 / qpeek(st,656) ※IronHSPのみ。3.7/3.8は lpoke st,656,下位 : lpoke st,660,上位
; fpFlushPrinter : INT_PTR (+664, 8byte) qpoke st,664,値 / qpeek(st,664) ※IronHSPのみ。3.7/3.8は lpoke st,664,下位 : lpoke st,668,上位
; fpSendRecvBidiData : INT_PTR (+672, 8byte) qpoke st,672,値 / qpeek(st,672) ※IronHSPのみ。3.7/3.8は lpoke st,672,下位 : lpoke st,676,上位
; fpAddPrinterConnection2 : INT_PTR (+680, 8byte) qpoke st,680,値 / qpeek(st,680) ※IronHSPのみ。3.7/3.8は lpoke st,680,下位 : lpoke st,684,上位
; fpGetPrintClassObject : INT_PTR (+688, 8byte) qpoke st,688,値 / qpeek(st,688) ※IronHSPのみ。3.7/3.8は lpoke st,688,下位 : lpoke st,692,上位
; fpReportJobProcessingProgress : INT_PTR (+696, 8byte) qpoke st,696,値 / qpeek(st,696) ※IronHSPのみ。3.7/3.8は lpoke st,696,下位 : lpoke st,700,上位
; fpEnumAndLogProvidorObjects : INT_PTR (+704, 8byte) qpoke st,704,値 / qpeek(st,704) ※IronHSPのみ。3.7/3.8は lpoke st,704,下位 : lpoke st,708,上位
; fpInternalGetPrinterDriver : INT_PTR (+712, 8byte) qpoke st,712,値 / qpeek(st,712) ※IronHSPのみ。3.7/3.8は lpoke st,712,下位 : lpoke st,716,上位
; fpFindCompatibleDriver : INT_PTR (+720, 8byte) qpoke st,720,値 / qpeek(st,720) ※IronHSPのみ。3.7/3.8は lpoke st,720,下位 : lpoke st,724,上位
; fpInstallPrinterDriverPackageFromConnection : INT_PTR (+728, 8byte) qpoke st,728,値 / qpeek(st,728) ※IronHSPのみ。3.7/3.8は lpoke st,728,下位 : lpoke st,732,上位
; fpGetJobNamedPropertyValue : INT_PTR (+736, 8byte) qpoke st,736,値 / qpeek(st,736) ※IronHSPのみ。3.7/3.8は lpoke st,736,下位 : lpoke st,740,上位
; fpSetJobNamedProperty : INT_PTR (+744, 8byte) qpoke st,744,値 / qpeek(st,744) ※IronHSPのみ。3.7/3.8は lpoke st,744,下位 : lpoke st,748,上位
; fpDeleteJobNamedProperty : INT_PTR (+752, 8byte) qpoke st,752,値 / qpeek(st,752) ※IronHSPのみ。3.7/3.8は lpoke st,752,下位 : lpoke st,756,上位
; fpEnumJobNamedProperties : INT_PTR (+760, 8byte) qpoke st,760,値 / qpeek(st,760) ※IronHSPのみ。3.7/3.8は lpoke st,760,下位 : lpoke st,764,上位
; fpPowerEvent : INT_PTR (+768, 8byte) qpoke st,768,値 / qpeek(st,768) ※IronHSPのみ。3.7/3.8は lpoke st,768,下位 : lpoke st,772,上位
; fpGetUserPropertyBag : INT_PTR (+776, 8byte) qpoke st,776,値 / qpeek(st,776) ※IronHSPのみ。3.7/3.8は lpoke st,776,下位 : lpoke st,780,上位
; fpCanShutdown : INT_PTR (+784, 8byte) qpoke st,784,値 / qpeek(st,784) ※IronHSPのみ。3.7/3.8は lpoke st,784,下位 : lpoke st,788,上位
; fpLogJobInfoForBranchOffice : INT_PTR (+792, 8byte) qpoke st,792,値 / qpeek(st,792) ※IronHSPのみ。3.7/3.8は lpoke st,792,下位 : lpoke st,796,上位
; fpRegeneratePrintDeviceCapabilities : INT_PTR (+800, 8byte) qpoke st,800,値 / qpeek(st,800) ※IronHSPのみ。3.7/3.8は lpoke st,800,下位 : lpoke st,804,上位
; fpPrintSupportOperation : INT_PTR (+808, 8byte) qpoke st,808,値 / qpeek(st,808) ※IronHSPのみ。3.7/3.8は lpoke st,808,下位 : lpoke st,812,上位
; fpIppCreateJobOnPrinter : INT_PTR (+816, 8byte) qpoke st,816,値 / qpeek(st,816) ※IronHSPのみ。3.7/3.8は lpoke st,816,下位 : lpoke st,820,上位
; fpIppGetJobAttributes : INT_PTR (+824, 8byte) qpoke st,824,値 / qpeek(st,824) ※IronHSPのみ。3.7/3.8は lpoke st,824,下位 : lpoke st,828,上位
; fpIppSetJobAttributes : INT_PTR (+832, 8byte) qpoke st,832,値 / qpeek(st,832) ※IronHSPのみ。3.7/3.8は lpoke st,832,下位 : lpoke st,836,上位
; fpIppGetPrinterAttributes : INT_PTR (+840, 8byte) qpoke st,840,値 / qpeek(st,840) ※IronHSPのみ。3.7/3.8は lpoke st,840,下位 : lpoke st,844,上位
; fpIppSetPrinterAttributes : INT_PTR (+848, 8byte) qpoke st,848,値 / qpeek(st,848) ※IronHSPのみ。3.7/3.8は lpoke st,848,下位 : lpoke st,852,上位
; fpIppCreateJobOnPrinterWithAttributes : INT_PTR (+856, 8byte) qpoke st,856,値 / qpeek(st,856) ※IronHSPのみ。3.7/3.8は lpoke st,856,下位 : lpoke st,860,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global PRINTPROVIDOR
#field intptr fpOpenPrinter
#field intptr fpSetJob
#field intptr fpGetJob
#field intptr fpEnumJobs
#field intptr fpAddPrinter
#field intptr fpDeletePrinter
#field intptr fpSetPrinter
#field intptr fpGetPrinter
#field intptr fpEnumPrinters
#field intptr fpAddPrinterDriver
#field intptr fpEnumPrinterDrivers
#field intptr fpGetPrinterDriver
#field intptr fpGetPrinterDriverDirectory
#field intptr fpDeletePrinterDriver
#field intptr fpAddPrintProcessor
#field intptr fpEnumPrintProcessors
#field intptr fpGetPrintProcessorDirectory
#field intptr fpDeletePrintProcessor
#field intptr fpEnumPrintProcessorDatatypes
#field intptr fpStartDocPrinter
#field intptr fpStartPagePrinter
#field intptr fpWritePrinter
#field intptr fpEndPagePrinter
#field intptr fpAbortPrinter
#field intptr fpReadPrinter
#field intptr fpEndDocPrinter
#field intptr fpAddJob
#field intptr fpScheduleJob
#field intptr fpGetPrinterData
#field intptr fpSetPrinterData
#field intptr fpWaitForPrinterChange
#field intptr fpClosePrinter
#field intptr fpAddForm
#field intptr fpDeleteForm
#field intptr fpGetForm
#field intptr fpSetForm
#field intptr fpEnumForms
#field intptr fpEnumMonitors
#field intptr fpEnumPorts
#field intptr fpAddPort
#field intptr fpConfigurePort
#field intptr fpDeletePort
#field intptr fpCreatePrinterIC
#field intptr fpPlayGdiScriptOnPrinterIC
#field intptr fpDeletePrinterIC
#field intptr fpAddPrinterConnection
#field intptr fpDeletePrinterConnection
#field intptr fpPrinterMessageBox
#field intptr fpAddMonitor
#field intptr fpDeleteMonitor
#field intptr fpResetPrinter
#field intptr fpGetPrinterDriverEx
#field intptr fpFindFirstPrinterChangeNotification
#field intptr fpFindClosePrinterChangeNotification
#field intptr fpAddPortEx
#field intptr fpShutDown
#field intptr fpRefreshPrinterChangeNotification
#field intptr fpOpenPrinterEx
#field intptr fpAddPrinterEx
#field intptr fpSetPort
#field intptr fpEnumPrinterData
#field intptr fpDeletePrinterData
#field intptr fpClusterSplOpen
#field intptr fpClusterSplClose
#field intptr fpClusterSplIsAlive
#field intptr fpSetPrinterDataEx
#field intptr fpGetPrinterDataEx
#field intptr fpEnumPrinterDataEx
#field intptr fpEnumPrinterKey
#field intptr fpDeletePrinterDataEx
#field intptr fpDeletePrinterKey
#field intptr fpSeekPrinter
#field intptr fpDeletePrinterDriverEx
#field intptr fpAddPerMachineConnection
#field intptr fpDeletePerMachineConnection
#field intptr fpEnumPerMachineConnections
#field intptr fpXcvData
#field intptr fpAddPrinterDriverEx
#field intptr fpSplReadPrinter
#field intptr fpDriverUnloadComplete
#field intptr fpGetSpoolFileInfo
#field intptr fpCommitSpoolData
#field intptr fpCloseSpoolFileHandle
#field intptr fpFlushPrinter
#field intptr fpSendRecvBidiData
#field intptr fpAddPrinterConnection2
#field intptr fpGetPrintClassObject
#field intptr fpReportJobProcessingProgress
#field intptr fpEnumAndLogProvidorObjects
#field intptr fpInternalGetPrinterDriver
#field intptr fpFindCompatibleDriver
#field intptr fpInstallPrinterDriverPackageFromConnection
#field intptr fpGetJobNamedPropertyValue
#field intptr fpSetJobNamedProperty
#field intptr fpDeleteJobNamedProperty
#field intptr fpEnumJobNamedProperties
#field intptr fpPowerEvent
#field intptr fpGetUserPropertyBag
#field intptr fpCanShutdown
#field intptr fpLogJobInfoForBranchOffice
#field intptr fpRegeneratePrintDeviceCapabilities
#field intptr fpPrintSupportOperation
#field intptr fpIppCreateJobOnPrinter
#field intptr fpIppGetJobAttributes
#field intptr fpIppSetJobAttributes
#field intptr fpIppGetPrinterAttributes
#field intptr fpIppSetPrinterAttributes
#field intptr fpIppCreateJobOnPrinterWithAttributes
#endstruct
stdim st, PRINTPROVIDOR ; NSTRUCT 変数を確保
st->fpOpenPrinter = 100
mes "fpOpenPrinter=" + st->fpOpenPrinter