EngTextOut 関数 (winddi.h)

EngTextOut 関数を使用すると、GDI は指定した位置にグリフのセットをレンダリングします。

構文

ENGAPI BOOL EngTextOut(
       SURFOBJ  *pso,
       STROBJ   *pstro,
       FONTOBJ  *pfo,
       CLIPOBJ  *pco,
       RECTL    *prclExtra,
       RECTL    *prclOpaque,
       BRUSHOBJ *pboFore,
       BRUSHOBJ *pboOpaque,
       POINTL   *pptlOrg,
  [in] MIX      mix
);

パラメーター

pso

書き込むサーフェスを記述する SURFOBJ 構造体へのポインター。

pstro

レンダリングするグリフと、それらが配置される位置を定義する STROBJ 構造体へのポインター。

pfo

フォントとそのグリフに関する情報を取得するために使用される FONTOBJ 構造体へのポインター。

pco

レンダリングを実行する必要があるクリップ領域を定義する CLIPOBJ 構造体へのポインター。 このクリップ領域の外側では、ピクセルは影響を受けなくなります。

prclExtra

RECTL 構造体へのポインター。 このパラメーターは常に NULL である必要があります。

prclOpaque

右下に排他的な単一の不透明な四角形を識別する RECTL 構造体へのポインター。 この四角形内のピクセル (前景ではなくクリップされていないピクセル) は、不透明なブラシでレンダリングされます。 この四角形は、描画するテキストの境界を常に設定します。 このパラメーターが NULL の場合、不透明なピクセルはレンダリングされません。

pboFore

前景ピクセルに使用するブラシ オブジェクトを表す BRUSHOBJ 構造体へのポインター。 このブラシは常に純色のブラシになります。

pboOpaque

不透明なピクセルのブラシ オブジェクトを表す BRUSHOBJ 構造体へのポインター。 このブラシの前景と背景の両方のミックス モードがR2_COPYPENと見なされます。 ドライバーが DEVINFO 構造体の flGraphicsCaps メンバーのGCAPS_ARBRUSHOPAQUE機能ビットを設定しない限り、常に純色ブラシで呼び出されます。

pptlOrg

両方のブラシのブラシの原点を定義する POINTL 構造体へのポインター。 EngTextOut が呼び出されたときにこのパラメーターが 0 に設定されている場合、一部のプリンター ドライバーでカラー イメージが正しく印刷されないことがあります。 詳細については、「解説」をご覧ください。

[in] mix

pboFore の前景と背景のラスター操作 (ミックス モード) を指定します。

戻り値

関数が成功した場合、戻り値は TRUE です。 それ以外の場合は FALSE になり、エラー コードがログに記録されます。

解説

ドライバーは、 DrvTextOut をフックし、グリフをレンダリングできない場合に EngTextOut を呼び出す必要があります。

メモ デバイスのマネージド サーフェイスに DrvTextOut がフックされている場合、ドライバーは EngTextOut にパントできません。
 
EngTextOut への入力パラメーターは、前景と不透明の 2 つのピクセル セットを定義します。 ドライバーは、不透明なピクセルが最初に不透明なブラシでレンダリングされ、前景のピクセルが前景ブラシでレンダリングされるプロセスと同じになるように、サーフェスをレンダリングする必要があります。 これらの各操作は、クリッピングによって制限されます。

この関数の pptlOrg パラメーターが 0 に設定されている場合、一部のプリンター ドライバーは、Microsoft Windows Server 2003 (日本語版) でカラー イメージを正しく印刷しません。 pptlOrg を 0 (NULL ポインター値) に設定すると、ブラシの原点が定義されていないことを意味すると解釈されます。 この問題を回避するには、EngTextOut の呼び出しの前に、メンバーが (0,0) に設定されている POINTL 構造体のアドレスを使用して pptlOrg を初期化します。

前景ピクセルと不透明ピクセルは、色がサーフェスにブラシ処理される画面と見なされます。 フォントのグリフ自体に色がありません。

EngTextOut への入力パラメーターは、グリフ ピクセルのセット、追加の四角形のセット、不透明な四角形、クリップ領域を定義します。 ドライバーは、フォアグラウンドピクセルと不透明ピクセルのセットを計算してレンダリングする必要があります。

ミックス モードでは、受信パターンをデバイス画面に既に存在するデータと混合する方法を定義します。 MIX データ型は、1 つの ULONG にパックされた 2 つの ROP2 値で構成されます。 下位バイトは、前景ラスター演算を定義します。次のバイトは、バックグラウンド ラスター演算を定義します。 ラスター演算コードの詳細については、Microsoft Windows SDKドキュメントを参照してください。

要件

   
サポートされている最小のクライアント Windows 2000 以降のバージョンの Windows オペレーティング システムで使用できます。
対象プラットフォーム ユニバーサル
Header winddi.h (Winddi.h を含む)
Library Win32k.lib
[DLL] Win32k.sys

関連項目

CLIPOBJ

DEVINFO

DrvTextOut

FONTOBJ

STROBJ

SURFOBJ