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

IPrintTicketProvider

COM
IIDbb5116db-0a23-4c3a-a6b6-89e5558dfb5d継承元IUnknown自前メソッド開始 vtbl3

メソッド 7

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetSupportedVersions(PRINTER_HANDLE hPrinter, INT** ppVersions, INT* cVersions)
hPrinterPRINTER_HANDLEin対象プリンタのハンドル(PRINTER_HANDLE)。
ppVersionsINT**inout対応する印刷スキーマバージョン番号の配列を受け取る出力先(INT配列)。
cVersionsINT*inout返されたバージョンの個数を受け取る出力先。
vtbl 4 HRESULT BindPrinter(PRINTER_HANDLE hPrinter, INT version, SHIMOPTS* pOptions, DWORD* pDevModeFlags, INT* cNamespaces, LPWSTR** ppNamespaces)
hPrinterPRINTER_HANDLEin対象プリンタのハンドル(PRINTER_HANDLE)。
versionINTinバインドする印刷スキーマのバージョン番号(INT)。
pOptionsSHIMOPTS*inoutプロバイダのシム動作を制御するSHIMOPTS構造体へのポインタ。
pDevModeFlagsDWORD*inoutDEVMODE処理に関する能力フラグを受け取る出力先。
cNamespacesINT*inout返される名前空間の個数を受け取る出力先。
ppNamespacesLPWSTR**inoutプロバイダがサポートするスキーマ名前空間URIの配列を受け取る出力先(LPWSTR配列)。
vtbl 5 HRESULT QueryDeviceNamespace(LPWSTR* pDefaultNamespace)
pDefaultNamespaceLPWSTR*inoutデバイス固有スキーマの既定名前空間URIを受け取る出力先。CoTaskMemFreeで解放する。
vtbl 6 HRESULT ConvertPrintTicketToDevMode(IXMLDOMDocument2* pPrintTicket, DWORD cbDevmodeIn, DEVMODEA* pDevmodeIn, DWORD* pcbDevmodeOut, DEVMODEA** ppDevmodeOut)
pPrintTicketIXMLDOMDocument2*in変換元の印刷チケットXMLを保持するIXMLDOMDocument2へのポインタ。
cbDevmodeInDWORDinpDevmodeInのサイズ(バイト単位)。基準とする入力DEVMODEのサイズ。
pDevmodeInDEVMODEA*inoutマージの基準とする入力DEVMODE構造体へのポインタ。NULL可。
pcbDevmodeOutDWORD*inout生成された出力DEVMODEのサイズ(バイト単位)を受け取る出力先。
ppDevmodeOutDEVMODEA**inout印刷チケットを反映した出力DEVMODEを受け取る出力先。CoTaskMemFreeで解放する。
vtbl 7 HRESULT ConvertDevModeToPrintTicket(DWORD cbDevmode, DEVMODEA* pDevmode, IXMLDOMDocument2* pPrintTicket)
cbDevmodeDWORDinpDevmodeのサイズ(バイト単位)。
pDevmodeDEVMODEA*inout変換元のDEVMODE構造体へのポインタ。
pPrintTicketIXMLDOMDocument2*in変換結果を書き込む先の印刷チケットXMLを保持するIXMLDOMDocument2へのポインタ。
vtbl 8 HRESULT GetPrintCapabilities(IXMLDOMDocument2* pPrintTicket, IXMLDOMDocument2** ppCapabilities)
pPrintTicketIXMLDOMDocument2*in能力取得のコンテキストとする印刷チケットXMLへのポインタ。NULL可。
ppCapabilitiesIXMLDOMDocument2**out生成された印刷能力(PrintCapabilities)XML文書を受け取る出力先(IXMLDOMDocument2)。
vtbl 9 HRESULT ValidatePrintTicket(IXMLDOMDocument2* pBaseTicket)
pBaseTicketIXMLDOMDocument2*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 指定が可能。