InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IPMDataObject.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Dave Burnard
6 //
7 // $Author$
8 //
9 // $DateTime$
10 //
11 // $Revision$
12 //
13 // $Change$
14 //
15 // Copyright 1997-2010 Adobe Systems Incorporated. All rights reserved.
16 //
17 // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance
18 // with the terms of the Adobe license agreement accompanying it. If you have received
19 // this file from a source other than Adobe, then your use, modification, or
20 // distribution of it requires the prior written permission of Adobe.
21 //
22 //
23 // Interface definition for data objects used in clipboard and drag and drop operations
24 //
25 //========================================================================================
26 
27 #ifndef __IPMDataObject__
28 #define __IPMDataObject__
29 
30 #include "IPMUnknown.h"
31 #include "PMFlavorTypes.h"
32 #include "K2Vector.h"
33 #include "DragDropID.h"
34 
35 #ifdef WINDOWS
36  #include <objbase.h>
37 #endif
38 
46 class IPMDataObject : public IPMUnknown
47 {
48 public:
49  enum { kDefaultIID = IID_IPMDATAOBJECT };
50 
51  public:
59  virtual void PromiseFlavor(ExternalPMFlavor newFlavor, PMFlavorFlags flavorFlags = kNormalFlavorFlag) = 0;
60 
64  virtual uint32 GetItemID() const= 0;
65 
69  virtual void SetItemID(uint32 id) = 0;
70 #ifdef MACINTOSH
71 
77  virtual PasteboardRef GetPasteboardRef() const = 0;
78 
82  virtual void SetPasteboardRef(PasteboardRef) = 0;
83 #endif
84 #ifdef WINDOWS
85 
88  virtual IDataObject* GetOLEItem() const = 0;
89 
93  virtual void SetOLEItem(IDataObject* obj) = 0;
94 #endif
95 
100  virtual uint16 CountFlavors() const = 0;
101 
106  virtual K2Vector<ExternalPMFlavor>* GetPromisedFlavors() const = 0;
107 
113  virtual bool16 FlavorExists(ExternalPMFlavor requestedFlavor) const = 0;
114 
121  virtual DataExchangeResponse FlavorExistsWithPriority(ExternalPMFlavor flavor) const = 0;
122 
130  virtual uint32 GetSizeOfFlavorData(ExternalPMFlavor flavor) const = 0;
131 
132  //
140  virtual IPMStream* GetStreamForReading(ExternalPMFlavor flavor) = 0;
141 
149  virtual IPMStream* GetStreamForWriting(ExternalPMFlavor flavor) = 0;
150 
157  virtual void FinishedWithStream(IPMStream*) = 0;
158 
160  enum {
167 
172  virtual int16 GetUsage() const= 0;
173 
178  virtual void SetUsage(int16) = 0;
179 };
180 
181 #endif