EngSetPointerShape 関数 (winddi.h)

EngSetPointerShape 関数は、呼び出し元のドライバーのポインター図形を設定します。

構文

ENGAPI ULONG EngSetPointerShape(
  [in] SURFOBJ  *pso,
  [in] SURFOBJ  *psoMask,
  [in] SURFOBJ  *psoColor,
  [in] XLATEOBJ *pxlo,
  [in] LONG     xHot,
  [in] LONG     yHot,
  [in] LONG     x,
  [in] LONG     y,
  [in] RECTL    *prcl,
  [in] FLONG    fl
);

パラメーター

[in] pso

描画するサーフェスを記述する SURFOBJ 構造体へのポインター。

[in] psoMask

ポインター ビットマップに適用する AND-XOR マスクを定義する SURFOBJ 構造体へのポインター。 ビットマップの上半分はモノクロ AND マスクを指定し、下半分はモノクロ XOR マスクを指定します。 ポインターは、 psoMask が指すマスクの幅と高さの半分と同じです。 ポインター サイズには暗黙的な制約はありませんが、最適なポインター サイズは 32 x 32、48 x 48、64 x 64 ピクセルです。 このパラメーターが NULL の場合、ポインターは透過的です。

[in] psoColor

カラー ポインターの色を定義する SURFOBJ 構造体へのポインター。 このビットマップは、 psoMask が指すビットマップの幅と高さの半分と同じであり、 pso が指すサーフェスと同じ色の形式です。 このパラメーターが NULL の場合、ポインターはモノクロになります。

[in] pxlo

psoColor の色を定義する XLATEOBJ 構造体へのポインター。

[in] xHot

左上のピクセルに対するポインターのホット スポットの x 座標を指定します。 ホット スポットによって示されるピクセルは、新しいポインター位置に配置する必要があります。

[in] yHot

左上のピクセルに対するポインターのホット スポットの y 座標を指定します。 ホット スポットによって示されるピクセルは、新しいポインター位置に配置する必要があります。

[in] x

新しいポインター位置の x 座標を指定します。

[in] y

新しいポインター位置の y 座標を指定します。

[in] prcl

RECTL 構造体へのポインター。 NULL 以外の場合、ドライバーは、ディスプレイ上のポインターの影響を受けるすべてのピクセルを境界とする四角形を提供しています。 GDI では、最初にポインターを移動せずに、この四角形に描画しないようにします。

[in] fl

GDI がこの呼び出しを処理するために使用するフラグのセットを指定します。 このパラメーターには、次の定義済みの値の 1 つ以上を指定できます。

フラグ 説明
SPS_ANIMATESTART GDI は、アニメーションポインター効果を構成する一連の同様のサイズのポインター図形を受け取る準備をする必要があります。
SPS_ANIMATEUPDATE GDI は、アニメーション化されたシリーズの次のポインター図形を描画する必要があります。
SPS_CHANGE GDI は、ポインターの図形を変更するように要求されます。

戻り値

EngSetPointerShape は 、次のいずれかの値を返します。

リターン コード 説明
SPS_ACCEPT_EXCLUDE
GDI は図形を受け入れます。 GDI は、最初にポインターを移動せずに prcl で書き込まれた四角形から読み取ったり書き込んだりしません。
SPS_ERROR
GDI は通常、この図形をサポートしていますが、通常とは異なる理由で失敗しました。

解説

ドライバーは EngSetPointerShape を呼び出して、GDI でソフトウェア カーソルを管理できます。

psoMask が指すモノクロ ビットマップには、2 つの部分があります。 最初の部分はポインターの AND マスクを定義し、2 番目の部分では XOR マスクを定義します。 まとめると、これらのマスクは、ポインター 画像のピクセルごとに 2 ビットの情報を提供します。 次の真理値テーブルでは、AND マスクと XOR マスクのさまざまな値に対して GDI がディスプレイに描画する内容を決定します。

AND 値 XOR 値 結果のピクセル
0 0
0 1 Black
1 0 ピクセルの変更なし
1 1 ピクセルの色が反転する
 

このメカニズムは、ポインターを構成するピクセルの透明度と反転を可能にしながら、白黒の画像を提供します。

要件

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

関連項目

DrvSetPointerShape

EngMovePointer

SURFOBJ

XLATEOBJ