| // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #include "content/browser/web_contents/web_drag_utils_win.h" | 
 |  | 
 | #include <oleidl.h> | 
 | #include "base/logging.h" | 
 |  | 
 | using blink::WebDragOperation; | 
 | using blink::WebDragOperationsMask; | 
 | using blink::WebDragOperationNone; | 
 | using blink::WebDragOperationCopy; | 
 | using blink::WebDragOperationLink; | 
 | using blink::WebDragOperationMove; | 
 | using blink::WebDragOperationGeneric; | 
 |  | 
 | namespace content { | 
 |  | 
 | WebDragOperation WinDragOpToWebDragOp(DWORD effect) { | 
 |   DCHECK(effect == DROPEFFECT_NONE || effect == DROPEFFECT_COPY || | 
 |          effect == DROPEFFECT_LINK || effect == DROPEFFECT_MOVE); | 
 |  | 
 |   return WinDragOpMaskToWebDragOpMask(effect); | 
 | } | 
 |  | 
 | WebDragOperationsMask WinDragOpMaskToWebDragOpMask(DWORD effects) { | 
 |   WebDragOperationsMask ops = WebDragOperationNone; | 
 |   if (effects & DROPEFFECT_COPY) | 
 |     ops = static_cast<WebDragOperationsMask>(ops | WebDragOperationCopy); | 
 |   if (effects & DROPEFFECT_LINK) | 
 |     ops = static_cast<WebDragOperationsMask>(ops | WebDragOperationLink); | 
 |   if (effects & DROPEFFECT_MOVE) | 
 |     ops = static_cast<WebDragOperationsMask>(ops | WebDragOperationMove | | 
 |                                              WebDragOperationGeneric); | 
 |   return ops; | 
 | } | 
 |  | 
 | DWORD WebDragOpToWinDragOp(WebDragOperation op) { | 
 |   DCHECK(op == WebDragOperationNone || | 
 |          op == WebDragOperationCopy || | 
 |          op == WebDragOperationLink || | 
 |          op == WebDragOperationMove || | 
 |          op == (WebDragOperationMove | WebDragOperationGeneric)); | 
 |  | 
 |   return WebDragOpMaskToWinDragOpMask(op); | 
 | } | 
 |  | 
 | DWORD WebDragOpMaskToWinDragOpMask(WebDragOperationsMask ops) { | 
 |   DWORD win_ops = DROPEFFECT_NONE; | 
 |   if (ops & WebDragOperationCopy) | 
 |     win_ops |= DROPEFFECT_COPY; | 
 |   if (ops & WebDragOperationLink) | 
 |     win_ops |= DROPEFFECT_LINK; | 
 |   if (ops & (WebDragOperationMove | WebDragOperationGeneric)) | 
 |     win_ops |= DROPEFFECT_MOVE; | 
 |   return win_ops; | 
 | } | 
 |  | 
 | }  // namespace content |