IDropTarget::D ragEnter メソッド (oleidl.h)
ドロップを受け入れられるかどうかを示し、その場合はドロップの効果を示します。
構文
HRESULT DragEnter(
[in] IDataObject *pDataObj,
[in] DWORD grfKeyState,
[in] POINTL pt,
[in, out] DWORD *pdwEffect
);
パラメーター
[in] pDataObj
データ オブジェクトの IDataObject インターフェイスへのポインター。 このデータ オブジェクトには、ドラッグ アンド ドロップ操作で転送されるデータが含まれます。 ドロップが発生した場合、このデータ オブジェクトはターゲットに組み込まれます。
[in] grfKeyState
キーボードのキーボード修飾子キーの現在の状態。 使用できる値は、フラグ MK_CONTROL、MK_SHIFT、MK_ALT、MK_BUTTON、MK_LBUTTON、MK_MBUTTON、MK_RBUTTONの組み合わせです。
[in] pt
画面座標内の現在のカーソル座標を含む POINTL 構造体。
[in, out] pdwEffect
入力時に、DoDragDrop 関数の pdwEffect パラメーターの値へのポインター。 戻り時には、ドロップ操作の結果を示す DROPEFFECT フラグのいずれかを含める必要があります。
戻り値
このメソッドは、成功したS_OKを返します。 その他の使用可能な値は次のとおりです。
リターン コード | 説明 |
---|---|
|
予期しないエラーが発生しました。 |
|
pdwEffect パラメーターは入力時に NULL です。 |
|
この操作で使用できるメモリが不足していました。 |
注釈
DragEnter は直接呼び出しません。代わりに、DoDragDrop 関数はそれを呼び出して、ユーザーが最初にドロップ ターゲットの登録済みウィンドウにマウスをドラッグした場合のドロップの効果を判断します。
DragEnter を実装するには、次の 3 つのことを確認して、ターゲットがソース データ オブジェクト内のデータを使用できるかどうかを判断する必要があります。
- データ オブジェクトで指定された形式とメディア
- pdwEffect の入力値
- 修飾子キーの状態
IDropTarget::D ragEnter へのエントリでは、pdwEffect パラメーターは DoDragDrop 関数の pdwOkEffect パラメーターに指定された効果に設定されます。 IDropTarget::D ragEnter メソッドは、これらの効果のいずれかを選択するか、ドロップを無効にする必要があります。
次の修飾子キーは、ドロップの結果に影響します。
キーの組み合わせ | User-Visible フィードバック | ドロップ効果 |
---|---|---|
CTRL + SHIFT | = | DROPEFFECT_LINK |
CTRL | + | DROPEFFECT_COPY |
キーまたは Shift キーなし | なし | DROPEFFECT_MOVE |
戻り値の場合、メソッドは効果 (DROPEFFECT フラグの 1 つ) を pdwEffect パラメーターに書き込む必要があります。 その後、DoDragDrop はこのパラメーターを受け取り、 pdwEffect パラメーターに書き込みます。 pdwEffect パラメーターで DoDragDrop を使用して、ドロップ バックの効果をソースに伝達します。 次に、DoDragDrop 関数は IDropSource::GiveFeedback を呼び出して、ソース アプリケーションがターゲット ウィンドウを通じてユーザーに適切な視覚的フィードバックを表示できるようにします。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | oleidl.h |