Win32 API 日本語リファレンス
ホームSystem.Ole › POINTERINACTIVE

POINTERINACTIVE

列挙型
基底型i4

メンバー 3

名前10進16進説明
POINTERINACTIVE_ACTIVATEONENTRY10x1マウス移動操作中にマウスがオブジェクトに入ったときに、そのオブジェクトをインプレースでアクティブ化します。
POINTERINACTIVE_DEACTIVATEONLEAVE20x2マウス移動操作中にマウスがオブジェクトから離れたときに、そのオブジェクトを非アクティブ化します。
POINTERINACTIVE_ACTIVATEONDRAG40x4ドラッグ アンド ドロップ操作中にマウスがオブジェクトの上にドラッグされたときに、そのオブジェクトをインプレースでアクティブ化します。

公式ドキュメント

オブジェクトのアクティブ化ポリシーを示し、IPointerInactive::GetActivationPolicy メソッドで使用されます。

解説(Remarks)

POINTERINACTIVE_ACTIVATEONENTRY および POINTERINACTIVE_DEACTIVATEONLEAVE の値の使用方法の詳細については、IPointerInactive::GetActivationPolicy メソッドを参照してください。

POINTERINACTIVE_ACTIVATEONDRAG の値は、非アクティブなオブジェクトに対するドラッグ アンド ドロップ操作をサポートするために使用できます。非アクティブなオブジェクトには、自身をドロップ ターゲット候補として登録するためのウィンドウがありません。ほとんどのコンテナーは、アクティブ化に伴うオーバーヘッドのため、埋め込まれた非アクティブなオブジェクトをドロップ ターゲットとして無視します。

ドラッグ アンド ドロップ操作中にマウス ポインターがオブジェクトの上にあるときにオブジェクトをアクティブ化する方法の代わりに、コンテナーはまず QueryInterface を呼び出して、非アクティブなオブジェクトが IPointerInactive をサポートしているかどうかを判断できます。オブジェクトが IPointerInactive をサポートしていない場合、コンテナーはそのオブジェクトがドロップ ターゲットではないと見なすことができます。オブジェクトが IPointerInactive をサポートしている場合、コンテナーは IPointerInactive::GetActivationPolicy メソッドを呼び出します。POINTERINACTIVE_ACTIVATEONDRAG の値が設定されている場合、コンテナーはオブジェクトをインプレースでアクティブ化し、オブジェクトが自身の IDropTarget インターフェイスを登録できるようにします。

これらの処理がすべて行われている間、コンテナーは自身の IDropTarget::DragOver メソッドを処理しています。このメソッドを完了するには、コンテナーは pdwEffect パラメーターに DROPEFFECT_NONE を返します。その後、コンテナーの IDropTarget::DragLeave が呼び出され、続いてオブジェクトの IDropTarget::DragEnter が呼び出されて、ドラッグ アンド ドロップ操作が続行されます。

重要 ウィンドウレスの OLE オブジェクトでは、このメカニズムは少し異なります。ウィンドウレス オブジェクトのドラッグ アンド ドロップ操作の詳細については、IOleInPlaceSiteWindowless を参照してください。

埋め込みオブジェクトの上でドロップが発生した場合、そのオブジェクトは UI アクティブ化され、フォーカスが再び変更されたときに UI 非アクティブ化されます。オブジェクトの上でドロップが発生しなかった場合、コンテナーは次に自身の IDropTarget::DragEnter が呼び出されたときに、そのオブジェクトを非アクティブ化する必要があります。コンテナーの IDropTarget::DragEnter が呼び出されないまま、3 番目のアクティブなオブジェクトの上でドロップが発生する場合もあります。この場合、コンテナーは、たとえば別のオブジェクトを UI アクティブ化するときなど、できるだけ早くそのオブジェクトを非アクティブ化するようにしてください。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum POINTERINACTIVE : int {
    POINTERINACTIVE_ACTIVATEONENTRY = 1,
    POINTERINACTIVE_DEACTIVATEONLEAVE = 2,
    POINTERINACTIVE_ACTIVATEONDRAG = 4
} POINTERINACTIVE;
public enum POINTERINACTIVE : int
{
    POINTERINACTIVE_ACTIVATEONENTRY = 1,
    POINTERINACTIVE_DEACTIVATEONLEAVE = 2,
    POINTERINACTIVE_ACTIVATEONDRAG = 4,
}
Public Enum POINTERINACTIVE As Integer
    POINTERINACTIVE_ACTIVATEONENTRY = 1
    POINTERINACTIVE_DEACTIVATEONLEAVE = 2
    POINTERINACTIVE_ACTIVATEONDRAG = 4
End Enum
import enum

class POINTERINACTIVE(enum.IntEnum):
    POINTERINACTIVE_ACTIVATEONENTRY = 1
    POINTERINACTIVE_DEACTIVATEONLEAVE = 2
    POINTERINACTIVE_ACTIVATEONDRAG = 4
// POINTERINACTIVE
pub const POINTERINACTIVE_ACTIVATEONENTRY: i32 = 1;
pub const POINTERINACTIVE_DEACTIVATEONLEAVE: i32 = 2;
pub const POINTERINACTIVE_ACTIVATEONDRAG: i32 = 4;
// POINTERINACTIVE
const (
	POINTERINACTIVE_ACTIVATEONENTRY int32 = 1
	POINTERINACTIVE_DEACTIVATEONLEAVE int32 = 2
	POINTERINACTIVE_ACTIVATEONDRAG int32 = 4
)
const
  POINTERINACTIVE_ACTIVATEONENTRY = 1;
  POINTERINACTIVE_DEACTIVATEONLEAVE = 2;
  POINTERINACTIVE_ACTIVATEONDRAG = 4;
// POINTERINACTIVE
pub const POINTERINACTIVE_ACTIVATEONENTRY: i32 = 1;
pub const POINTERINACTIVE_DEACTIVATEONLEAVE: i32 = 2;
pub const POINTERINACTIVE_ACTIVATEONDRAG: i32 = 4;
const
  POINTERINACTIVE_ACTIVATEONENTRY* = 1
  POINTERINACTIVE_DEACTIVATEONLEAVE* = 2
  POINTERINACTIVE_ACTIVATEONDRAG* = 4
enum POINTERINACTIVE : int {
    POINTERINACTIVE_ACTIVATEONENTRY = 1,
    POINTERINACTIVE_DEACTIVATEONLEAVE = 2,
    POINTERINACTIVE_ACTIVATEONDRAG = 4,
}
#define global POINTERINACTIVE_ACTIVATEONENTRY   0x1
#define global POINTERINACTIVE_DEACTIVATEONLEAVE 0x2
#define global POINTERINACTIVE_ACTIVATEONDRAG    0x4