⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 idroptargetimpl.h

📁 大量windows shell编程例子
💻 H
字号:
// IDropTargetImpl.h

#include <AtlCom.h>

class ATL_NO_VTABLE IDropTargetImpl : public IDropTarget
{
public:

   // IUnknown
   STDMETHOD(QueryInterface)(REFIID riid, void** ppvObject) = 0;
   _ATL_DEBUG_ADDREF_RELEASE_IMPL( IDropTargetImpl )

   // IDropTarget (optimized for shell drag-and-drop)
   STDMETHOD(DragEnter)(LPDATAOBJECT pDO, DWORD dwKeyState, POINTL pt, DWORD *pdwEffect)
   {
      STGMEDIUM sm;
      FORMATETC fe;
   
      // Do we accept this type of data?
      ZeroMemory(&sm, sizeof(STGMEDIUM));
      ZeroMemory(&fe, sizeof(FORMATETC));
      fe.tymed = TYMED_HGLOBAL;
      fe.lindex = -1;
      fe.dwAspect = DVASPECT_CONTENT;
      fe.cfFormat = CF_HDROP; 
      if(FAILED(pDO->GetData(&fe, &sm)))
      {
         fe.cfFormat = CF_TEXT;
         if(FAILED(pDO->GetData(&fe, &sm)))
         {
            // Reject the drag-and-drop
            *pdwEffect = DROPEFFECT_NONE;
            return E_ABORT;
         }
      }

      // The default action is to copy data...
      *pdwEffect = DROPEFFECT_COPY;
      return S_OK;
   }

   STDMETHOD(DragOver)(DWORD dwKeyState, POINTL pt, DWORD* pdwEffect)
   {
      // Do not accept keyboard modifiers
      *pdwEffect = DROPEFFECT_COPY;
      return S_OK;
   }

   STDMETHOD(DragLeave)()
   {
      return S_OK;
   }

   STDMETHOD(Drop)(LPDATAOBJECT pDO, DWORD dwKeyState, POINTL pt, DWORD* pdwEffect);
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -