次の方法で共有


MXDC_ESCAPE_HEADER_T構造体

MXDC_ESCAPE_HEADER_T構造体は、nEscape パラメーターとして MXDC_ESCAPE を使用して ExtEscape を呼び出す操作コードを保持します。 また、入力バッファーと出力バッファーのサイズも提供します。

構文

typedef struct tagMxdcEscapeHeader {
  ULONG cbInput;
  ULONG cbOutput;
  ULONG opCode;
} MXDC_ESCAPE_HEADER_T, *P_MXDC_ESCAPE_HEADER_T;

メンバー

cbInput

ExtEscape 関数の lpszOutData パラメーターに渡される入力バッファーのサイズ。

cbOutput

出力バッファーのサイズ。 これは ExtEscape 関数の cbOutput パラメーターと同じ値です。

オペコード

MXDC に何をすべきかを示すコード定数。

操作コード 説明
MXDCOP_GET_FILENAME ExtEscape 関数の lpszOutData パラメーターで、出力ファイルの完全パスを 0 で終わる文字列として返すか、その文字列のサイズを返します。 「解説」を参照してください。
MXDCOP_PRINTTICKET_FIXED_DOC_SEQ 印刷チケットを XPS 固定ドキュメント シーケンスに関連付けます。
MXDCOP_PRINTTICKET_FIXED_DOC 印刷チケットを XPS ドキュメントに関連付けます。
MXDCOP_PRINTTICKET_FIXED_PAGE 印刷チケットを XPS ページに関連付けます。
MXDCOP_SET_S0PAGE 現在のページの XPS マークアップを出力に送信します。
MXDCOP_SET_S0PAGE_RESOURCE ページ上のリソース (画像やフォントなど) を出力に送信します。
MXDCOP_SET_XPSPASSTHRU_MODE MXDC をパススルー状態にして、アプリケーションが MXDC による処理を行わずに XPS を出力ファイルに直接書き込むできるようにします。 この方法では、ドキュメント全体またはドキュメント シーケンスを記述できます。

解説

MXDC_ESCAPEを呼び出す前に、_applications最初に GETTECHNOLOGY エスケープを使用して ExtEscape を呼び出して、ドライバーが MXDC であることを確認する必要があります。 ドライバーが MXDC の場合、関数は 0 で終わる文字列 "; をhttp://schemas.microsoft.com/xps/2005/06"返します。

この構造体は、常に lpszInData パラメーターで ExtEscape 関数に渡されるデータの先頭にあります。

opCode がMXDCOP_GET_FILENAME場合:

  • ExtEscape 関数の lpszInData パラメーターは、MXDC_ESCAPE_HEADER_T構造体のみで構成されます。
  • ExtEscape を 2 回呼び出して、出力ファイル名を取得します。
    1. 最初に、ExtEscapecbOutput パラメーターに 4 を渡します。 lpszOutData パラメーターを、割り当てられた 4 バイトのメモリを指す値に設定します。 完全修飾ファイル パスのサイズは、ExtEscapelpszOutData パラメーターで返されます。
    2. 次に、関数をもう一度呼び出します。 今回は 、cbOutputcbInput の 両方を 4+ DataSize に設定します。 完全修飾ファイル パスは MxdcGetFileNameData 構造体で返されます。

opCode がMXDCOP_PRINTTICKET_FIXED_DOC_SEQまたはMXDCOP_PRINTTICKET_FIXED_DOC場合:

opCode がMXDCOP_PRINTTICKET_FIXED_PAGE場合:

opCode がMXDCOP_SET_S0PAGE場合:

  • ExtEscape 関数の lpszInData パラメーターは、MXDC_ESCAPE_HEADER_T構造体と MxdcS0PageData 構造体を MxdcS0PagePassthroughEscape 構造体に連結して構成されます。
  • ExtEscape の呼び出しは、StartPage の呼び出しと EndPage の呼び出しの間に発生する必要があります。
  • 呼び出し元のアプリケーションは、XML の検証を担当します。
  • MXDCOP_SET_S0PAGEで呼び出す前に、ページ上の各リソースの opCode として MXDCOP_SET_S0PAGE_RESOURCE を使用して ExtEscape を呼び出すと、ストリーミングの消費量がより効率的になります。

opCode がMXDCOP_SET_S0PAGE_RESOURCE場合:

  • ExtEscape 関数の lpszInData パラメーターは、MXDC_ESCAPE_HEADER_T構造体と MxdcXpsS0PageResource 構造体を MxdcS0PageResourceEscape 構造体に連結して構成されます。
  • ExtEscape の呼び出しは、StartPage の呼び出しと EndPage の呼び出しの間に発生する必要がありますが、StartPage 呼び出しと EndPage 呼び出しの間には、このような呼び出しが複数存在する可能性があります。
  • MXDCOP_SET_S0PAGEで呼び出す前に、ページ上の各リソースの opCode として MXDCOP_SET_S0PAGE_RESOURCE を使用して ExtEscape を呼び出すと、ストリーミングの消費量がより効率的になります。

opCode がMXDCOP_SET_XPSPASSTHRU_MODE場合:

  • ExtEscape 関数の lpszInData パラメーターは、MXDC_ESCAPE_HEADER_T構造体のみで構成されます。
  • この呼び出しは 、StartDoc の呼び出しの前に行う必要があります。

必要条件

要件
サポートされている最小のクライアント
Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows Server 2008 [デスクトップ アプリのみ]
Header
Mxdc.h

関連項目

印刷

印刷スプーラー API 構造体

GDI プリンターエスケープ関数

ExtEscape

MXDC_ESCAPE