Changeset 85681 in vbox for trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxDnD.h
- Timestamp:
- Aug 11, 2020 9:36:37 AM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxDnD.h
r85371 r85681 29 29 class VBoxDnDWnd; 30 30 31 /** 32 * Class for implementing IDataObject for VBoxTray's DnD support. 33 */ 31 34 class VBoxDnDDataObject : public IDataObject 32 35 { … … 80 83 LONG lindex = -1, DWORD dwAspect = DVASPECT_CONTENT, DVTARGETDEVICE *pTargetDevice = NULL); 81 84 85 /** Current drag and drop status. */ 82 86 Status mStatus; 87 /** Internal reference count of this object. */ 83 88 LONG mRefCount; 89 /** Number of native formats registered. This can be a different number than supplied with m_lstFormats. */ 84 90 ULONG mcFormats; 91 /** Array of registered FORMATETC structs. Matches m_cFormats. */ 85 92 LPFORMATETC mpFormatEtc; 93 /** Array of registered STGMEDIUM structs. Matches m_cFormats. */ 86 94 LPSTGMEDIUM mpStgMedium; 95 /** Event semaphore used for waiting on status changes. */ 87 96 RTSEMEVENT mEventDropped; 97 /** Format of currently retrieved data. */ 88 98 RTCString mstrFormat; 99 /** The retrieved data as a raw buffer. */ 89 100 void *mpvData; 101 /** Raw buffer size (in bytes). */ 90 102 size_t mcbData; 91 103 }; 92 104 105 /** 106 * Class for implementing IDropSource for VBoxTray's DnD support. 107 */ 93 108 class VBoxDnDDropSource : public IDropSource 94 109 { … … 125 140 }; 126 141 142 /** 143 * Class for implementing IDropTarget for VBoxTray's DnD support. 144 */ 127 145 class VBoxDnDDropTarget : public IDropTarget 128 146 { … … 153 171 public: 154 172 173 /** Returns the data as mutable raw. Use with caution! */ 155 174 void *DataMutableRaw(void) const { return mpvData; } 175 176 /** Returns the data size (in bytes). */ 156 177 size_t DataSize(void) const { return mcbData; } 178 157 179 RTCString Formats(void) const; 158 180 int WaitForDrop(RTMSINTERVAL msTimeout); … … 181 203 }; 182 204 205 /** 206 * Class for implementing IEnumFORMATETC for VBoxTray's DnD support. 207 */ 183 208 class VBoxDnDEnumFormatEtc : public IEnumFORMATETC 184 209 { … … 206 231 private: 207 232 233 /** Reference count of this object. */ 208 234 LONG m_lRefCount; 235 /** Current index for format iteration. */ 209 236 ULONG m_nIndex; 237 /** Number of format this object contains. */ 210 238 ULONG m_nNumFormats; 239 /** Array of FORMATETC formats this object contains. Matches m_nNumFormats. */ 211 240 LPFORMATETC m_pFormatEtc; 212 241 }; … … 215 244 class VBoxDnDWnd; 216 245 217 /* 246 /** 218 247 * A drag'n drop event from the host. 219 248 */ … … 371 400 * window messages. */ 372 401 RTTHREAD hThread; 402 /** Critical section to serialize access. */ 373 403 RTCRITSECT mCritSect; 404 /** Event semaphore to wait for new DnD events. */ 374 405 RTSEMEVENT mEventSem; 375 406 #ifdef RT_OS_WINDOWS … … 393 424 bool mfMouseButtonDown; 394 425 # ifdef VBOX_WITH_DRAG_AND_DROP_GH 395 /** IDropTarget implementation for guest -> host396 * support. */426 /** Pointer to IDropTarget implementation for 427 * guest -> host support. */ 397 428 VBoxDnDDropTarget *pDropTarget; 398 429 # endif /* VBOX_WITH_DRAG_AND_DROP_GH */
Note:
See TracChangeset
for help on using the changeset viewer.