2025-11-27 16:46:48 +09:00

61 lines
2.3 KiB
C++

// ==========================================================================
// Class Specification : COXDragDropCommands
// ==========================================================================
// Header file : OXDragDropCommands.h
// Version: 9.3
// This software along with its related components, documentation and files ("The Libraries")
// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is
// governed by a software license agreement ("Agreement"). Copies of the Agreement are
// available at The Code Project (www.codeproject.com), as part of the package you downloaded
// to obtain this file, or directly from our office. For a copy of the license governing
// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900.
// //////////////////////////////////////////////////////////////////////////
#ifndef _OXDRAGDROPCOMMANDS_H__
#define _OXDRAGDROPCOMMANDS_H__
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include "OXDllExt.h"
#include "OXBitmapMenuOrganizer.h"
class OX_CLASS_DECL COXDragDropCommands
{
public:
// custom format for drag'n'drop operations
static CLIPFORMAT m_cfCommandButton;
public:
// --- In : lpszText - item text
// nImageIndex - item image index
// nCommandID - item command ID
// fsStyle - item style (not relevant for menu items,
// always set to 0)
// hSubmenu - item submenu
// --- Out :
// --- Returns: A pointer to created COleDataSource object that will contain
// item info in specific format
// --- Effect : Creates COleDataSource for drag'n'drop operation that contains
// item info in specific internal format. Caller is responsible
// for deleting the returned COleDataSource object
static COleDataSource* PrepareDragDropData(LPCTSTR lpszText, int nImageIndex,
int nCommandID, BYTE fsStyle=0, HMENU hSubmenu=NULL);
static DROPEFFECT DoDragDrop(COleDataSource* pDataSource,
COleDropSource* pOleDropSource);
static int CalcMenuDataSize(HMENU hMenu);
static void WriteItemDragDropData(BYTE*& lpData, LPCTSTR lpszText,
int nImageIndex, int nCommandID, BYTE fsStyle);
static void WriteMenuDragDropData(BYTE*& lpData, HMENU hMenu);
};
/////////////////////////////////////////////////////////////////////////////
#endif // _OXDRAGDROPCOMMANDS_H__