ASPiK SDK
win32dragcontainer.h
1 // This file is part of VSTGUI. It is subject to the license terms
2 // in the LICENSE file found in the top-level directory of this
3 // distribution and at http://github.com/steinbergmedia/vstgui/LICENSE
4 
5 #ifndef __win32dragcontainer__
6 #define __win32dragcontainer__
7 
8 #include "../../idatapackage.h"
9 
10 #if WINDOWS
11 
12 #include <windows.h>
13 #include <objidl.h>
14 #include <vector>
15 #include <string>
16 
17 namespace VSTGUI {
18 
19 class WinDragContainer : public IDataPackage
20 {
21 public:
22  WinDragContainer (IDataObject* platformDrag);
23  ~WinDragContainer () noexcept;
24 
25  uint32_t getCount () const override;
26  uint32_t getDataSize (uint32_t index) const override;
27  Type getDataType (uint32_t index) const override;
28  uint32_t getData (uint32_t index, const void*& buffer, Type& type) const override;
29 
30 protected:
31  static bool checkResolveLink (const TCHAR* nativePath, TCHAR* resolved);
32  static FORMATETC formatTEXTDrop;
33  static FORMATETC formatHDrop;
34  static FORMATETC formatBinaryDrop;
35 
36  IDataObject* platformDrag;
37  uint32_t nbItems;
38  bool stringsAreFiles;
39  std::vector<std::string> strings;
40  void* data;
41  uint32_t dataSize;
42 };
43 
44 } // namespace
45 
46 #endif // WINDOWS
47 
48 #endif // __win32dragcontainer__
Definition: customcontrols.cpp:8