ホーム › Graphics.Printing › IPrintTicketProvider
IPrintTicketProvider
COMメソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT GetSupportedVersions(PRINTER_HANDLE hPrinter, INT** ppVersions, INT* cVersions)
| hPrinter | PRINTER_HANDLE | in | 対象プリンタのハンドル(PRINTER_HANDLE)。 |
| ppVersions | INT** | inout | 対応する印刷スキーマバージョン番号の配列を受け取る出力先(INT配列)。 |
| cVersions | INT* | inout | 返されたバージョンの個数を受け取る出力先。 |
vtbl 4 HRESULT BindPrinter(PRINTER_HANDLE hPrinter, INT version, SHIMOPTS* pOptions, DWORD* pDevModeFlags, INT* cNamespaces, LPWSTR** ppNamespaces)
| hPrinter | PRINTER_HANDLE | in | 対象プリンタのハンドル(PRINTER_HANDLE)。 |
| version | INT | in | バインドする印刷スキーマのバージョン番号(INT)。 |
| pOptions | SHIMOPTS* | inout | プロバイダのシム動作を制御するSHIMOPTS構造体へのポインタ。 |
| pDevModeFlags | DWORD* | inout | DEVMODE処理に関する能力フラグを受け取る出力先。 |
| cNamespaces | INT* | inout | 返される名前空間の個数を受け取る出力先。 |
| ppNamespaces | LPWSTR** | inout | プロバイダがサポートするスキーマ名前空間URIの配列を受け取る出力先(LPWSTR配列)。 |
| pDefaultNamespace | LPWSTR* | inout | デバイス固有スキーマの既定名前空間URIを受け取る出力先。CoTaskMemFreeで解放する。 |
vtbl 6 HRESULT ConvertPrintTicketToDevMode(IXMLDOMDocument2* pPrintTicket, DWORD cbDevmodeIn, DEVMODEA* pDevmodeIn, DWORD* pcbDevmodeOut, DEVMODEA** ppDevmodeOut)
| pPrintTicket | IXMLDOMDocument2* | in | 変換元の印刷チケットXMLを保持するIXMLDOMDocument2へのポインタ。 |
| cbDevmodeIn | DWORD | in | pDevmodeInのサイズ(バイト単位)。基準とする入力DEVMODEのサイズ。 |
| pDevmodeIn | DEVMODEA* | inout | マージの基準とする入力DEVMODE構造体へのポインタ。NULL可。 |
| pcbDevmodeOut | DWORD* | inout | 生成された出力DEVMODEのサイズ(バイト単位)を受け取る出力先。 |
| ppDevmodeOut | DEVMODEA** | inout | 印刷チケットを反映した出力DEVMODEを受け取る出力先。CoTaskMemFreeで解放する。 |
vtbl 7 HRESULT ConvertDevModeToPrintTicket(DWORD cbDevmode, DEVMODEA* pDevmode, IXMLDOMDocument2* pPrintTicket)
| cbDevmode | DWORD | in | pDevmodeのサイズ(バイト単位)。 |
| pDevmode | DEVMODEA* | inout | 変換元のDEVMODE構造体へのポインタ。 |
| pPrintTicket | IXMLDOMDocument2* | in | 変換結果を書き込む先の印刷チケットXMLを保持するIXMLDOMDocument2へのポインタ。 |
vtbl 8 HRESULT GetPrintCapabilities(IXMLDOMDocument2* pPrintTicket, IXMLDOMDocument2** ppCapabilities)
| pPrintTicket | IXMLDOMDocument2* | in | 能力取得のコンテキストとする印刷チケットXMLへのポインタ。NULL可。 |
| ppCapabilities | IXMLDOMDocument2** | out | 生成された印刷能力(PrintCapabilities)XML文書を受け取る出力先(IXMLDOMDocument2)。 |
vtbl 9 HRESULT ValidatePrintTicket(IXMLDOMDocument2* pBaseTicket)
| pBaseTicket | IXMLDOMDocument2* | in | 検証および正規化の対象となる印刷チケットXMLへのポインタ。結果が書き戻される。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IPrintTicketProvider "{BB5116DB-0A23-4C3A-A6B6-89E5558DFB5D}" #usecom global IPrintTicketProvider IID_IPrintTicketProvider "{}" #comfunc global IPrintTicketProvider_GetSupportedVersions 3 int,var,var #comfunc global IPrintTicketProvider_BindPrinter 4 int,int,var,var,var,var #comfunc global IPrintTicketProvider_QueryDeviceNamespace 5 var #comfunc global IPrintTicketProvider_ConvertPrintTicketToDevMode 6 sptr,int,var,var,var #comfunc global IPrintTicketProvider_ConvertDevModeToPrintTicket 7 int,var,sptr #comfunc global IPrintTicketProvider_GetPrintCapabilities 8 sptr,sptr #comfunc global IPrintTicketProvider_ValidatePrintTicket 9 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IPrintTicketProvider "{BB5116DB-0A23-4C3A-A6B6-89E5558DFB5D}" #usecom global IPrintTicketProvider IID_IPrintTicketProvider "{}" #comfunc global IPrintTicketProvider_GetSupportedVersions 3 int,sptr,sptr #comfunc global IPrintTicketProvider_BindPrinter 4 int,int,sptr,sptr,sptr,sptr #comfunc global IPrintTicketProvider_QueryDeviceNamespace 5 sptr #comfunc global IPrintTicketProvider_ConvertPrintTicketToDevMode 6 sptr,int,sptr,sptr,sptr #comfunc global IPrintTicketProvider_ConvertDevModeToPrintTicket 7 int,sptr,sptr #comfunc global IPrintTicketProvider_GetPrintCapabilities 8 sptr,sptr #comfunc global IPrintTicketProvider_ValidatePrintTicket 9 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。