次の方法で共有


ブロック マクロ

重要

プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。

詳細については、プリントサポートアプリデザインガイド.

ブロック マクロは、GPD ファイルに繰り返し挿入する一連の GPD ファイル エントリを区切るために使用されます。 機能や省略可能なステートメント、属性仕様、値マクロやその他のブロック マクロへの参照など、任意のエントリの種類をブロック マクロ定義に含めることができます。

ブロック マクロの使用には以下のルールが適用されます。

  • GPD ファイル内のブロック マクロ定義は、その値への参照の前に配置する必要があります。

  • ルート レベルで定義された (つまり中かっこ内ではない) ブロック マクロは、ブロック マクロを定義すると、定義した GPD ファイルを通して利用できるようになります。 それ以外の場合、ブロック マクロの範囲は、その定義を含む左中かっこと右中かっこのセットとなります。

  • ブロック マクロ定義には、追加のブロック マクロと値マクロの定義を含めることができます。

  • ブロック マクロ定義は、以前に定義した他のブロック マクロと値マクロを参照できますが、それ自体を参照することはできません。

  • ブロック マクロは引数を受け付けません。

  • 中かっこがマクロ本体に含まれている場合は、ペアにする必要があります (つまり、左右の中かっこの数が等しい必要があります)。

  • 同じ名前のブロック マクロを 2 つ作成した場合、GPD パーサーが 2 つ目の定義に出会うまで、最初の定義が有効になります。 そして、2番目の定義が最初の定義に取って代わる。 2つ目の定義の範囲が終了すれば、1つ目の定義が復活する。

ブロック マクロ形式

GPD ファイルでブロック マクロを定義するには、次の形式を使用します。

*BlockMacro: BlockMacroName {BlockMacroBody}

ここで、BlockMacroName は一意の名前で、BlockMacroBody は 1 つ以上の GPD ファイル エントリのセットです。 BlockMacroBody に中かっこが含まれている場合は、左中かっこと右中かっこ ({, }) の数が等しい必要があります。

たとえば、次のように定義されている EnvelopeDefaults という名前のブロック マクロを定義できます。

*BlockMacro: EnvelopeDefaults
{
    *PrintableArea: PAIR(4646, 6738)
    *PrintableOrigin: PAIR(150, 150)
    *RotateSize: TRUE
}

ブロック マクロの参照

ブロック マクロを参照するには、次の形式を使用します。

*InsertBlock: =BlockMacroName

ここで、ValueMacroName は、マクロを定義する *BlockMacro エントリで以前に指定された一意の名前です。

たとえば、オプション仕様の中の EnvelopeDefaults マクロを参照するには、次のエントリを使用します。

*Option: Env9
{
    *InsertBlock: =EnvelopeDefaults
}