- Timestamp:
- Jul 30, 2020 12:47:52 PM (4 years ago)
- Location:
- trunk/src/VBox/Main
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/include/GuestDnDPrivate.h
r85549 r85553 49 49 typedef std::vector<com::Utf8Str> GuestDnDMIMEList; 50 50 51 /* 52 ** @todo Put most of the implementations below in GuestDnDPrivate.cpp! 53 */ 54 51 /** 52 * Class to handle a guest DnD callback event. 53 */ 55 54 class GuestDnDCallbackEvent 56 55 { … … 97 96 } 98 97 98 /** 99 * Adds new meta data. 100 * 101 * @returns New (total) meta data size in bytes. 102 * @param pvDataAdd Pointer of data to add. 103 * @param cbDataAdd Size (in bytes) of data to add. 104 */ 99 105 size_t add(const void *pvDataAdd, size_t cbDataAdd) 100 106 { … … 121 127 } 122 128 129 /** 130 * Adds new meta data. 131 * 132 * @returns New (total) meta data size in bytes. 133 * @param vecAdd Meta data to add. 134 */ 123 135 size_t add(const std::vector<BYTE> &vecAdd) 124 136 { … … 132 144 } 133 145 146 /** 147 * Resets (clears) all data. 148 */ 134 149 void reset(void) 135 150 { … … 148 163 } 149 164 165 /** 166 * Resizes the allocation size. 167 * 168 * @returns VBox status code. 169 * @param cbSize New allocation size (in bytes). 170 */ 150 171 int resize(size_t cbSize) 151 172 { … … 212 233 } 213 234 235 /** 236 * Adds processed data to the internal accounting. 237 * 238 * @returns New processed data size. 239 * @param cbDataAdd Bytes to add as done processing. 240 */ 214 241 size_t addProcessed(size_t cbDataAdd) 215 242 { … … 220 247 } 221 248 249 /** 250 * Returns whether all data has been processed or not. 251 * 252 * @returns \c true if all data has been processed, \c false if not. 253 */ 222 254 bool isComplete(void) const 223 255 { … … 228 260 } 229 261 262 /** 263 * Returns the percentage (0-100) of the already processed data. 264 * 265 * @returns Percentage (0-100) of the already processed data. 266 */ 230 267 uint8_t getPercentComplete(void) const 231 268 { … … 234 271 } 235 272 273 /** 274 * Returns the remaining (outstanding) data left for processing. 275 * 276 * @returns Remaining (outstanding) data (in bytes) left for processing. 277 */ 236 278 size_t getRemaining(void) const 237 279 { … … 241 283 } 242 284 285 /** 286 * Returns the total data size (in bytes) announced. 287 * 288 * @returns Total data size (in bytes) announced. 289 */ 243 290 size_t getTotalAnnounced(void) const 244 291 { … … 246 293 } 247 294 295 /** 296 * Returns the total data size (in bytes) available. 297 * For receiving data, this represents the already received data. 298 * For sending data, this represents the data left to send. 299 * 300 * @returns Total data size (in bytes) available. 301 */ 248 302 size_t getTotalAvailable(void) const 249 303 { … … 251 305 } 252 306 307 /** 308 * Resets all data. 309 */ 253 310 void reset(void) 254 311 { … … 278 335 279 336 /** 280 * Class for keeping around DnD (file) transfer data. 337 * Base class for keeping around DnD (file) transfer data. 338 * Used for sending / receiving transfer data. 281 339 */ 282 340 struct GuestDnDTransferData … … 296 354 } 297 355 356 /** 357 * Initializes a transfer data object. 358 * 359 * @param cbBuf Scratch buffer size (in bytes) to use. 360 */ 298 361 int init(size_t cbBuf = _64K) 299 362 { … … 308 371 } 309 372 373 /** 374 * Destroys a transfer data object. 375 */ 310 376 void destroy(void) 311 377 { … … 321 387 } 322 388 389 /** 390 * Resets a transfer data object. 391 */ 323 392 void reset(void) 324 393 { … … 329 398 } 330 399 400 /** 401 * Returns whether this transfer object is complete or not. 402 * 403 * @returns \c true if complete, \c false if not. 404 */ 331 405 bool isComplete(void) const 332 406 { … … 345 419 }; 346 420 421 /** 422 * Class for keeping around DnD transfer send data (Host -> Guest). 423 */ 347 424 struct GuestDnDTransferSendData : public GuestDnDTransferData 348 425 { … … 360 437 } 361 438 439 /** 440 * Destroys the object. 441 */ 362 442 void destroy(void) 363 443 { … … 365 445 } 366 446 447 /** 448 * Resets the object. 449 */ 367 450 void reset(void) 368 451 { … … 389 472 GuestDnDSendCtx(void); 390 473 474 /** 475 * Resets the object. 476 */ 391 477 void reset(void); 392 478 … … 425 511 } 426 512 513 /** 514 * Destroys the object. 515 */ 427 516 void destroy(void) 428 517 { … … 430 519 } 431 520 521 /** 522 * Resets the object. 523 */ 432 524 void reset(void) 433 525 { … … 457 549 GuestDnDRecvCtx(void); 458 550 551 /** 552 * Resets the object. 553 */ 459 554 void reset(void); 460 555 … … 487 582 488 583 /** 489 * Simple structure for a bufferedguest DnD message.584 * Class for maintainig a (buffered) guest DnD message. 490 585 */ 491 586 class GuestDnDMsg … … 506 601 public: 507 602 603 /** 604 * Appends a new HGCM parameter to the message and returns the pointer to it. 605 */ 508 606 PVBOXHGCMSVCPARM getNextParam(void) 509 607 { … … 523 621 } 524 622 623 /** 624 * Returns the current parameter count. 625 * 626 * @returns Current parameter count. 627 */ 525 628 uint32_t getCount(void) const { return cParms; } 629 630 /** 631 * Returns the pointer to the beginning of the HGCM parameters array. Use with care. 632 * 633 * @returns Pointer to the beginning of the HGCM parameters array. 634 */ 526 635 PVBOXHGCMSVCPARM getParms(void) const { return paParms; } 636 637 /** 638 * Returns the message type. 639 * 640 * @returns Message type. 641 */ 527 642 uint32_t getType(void) const { return uMsg; } 528 643 644 /** 645 * Resets the object. 646 */ 529 647 void reset(void) 530 648 { … … 549 667 } 550 668 669 /** 670 * Appends a new message parameter of type pointer. 671 * 672 * @returns VBox status code. 673 * @param pvBuf Pointer to data to use. 674 * @param cbBuf Size (in bytes) of data to use. 675 */ 551 676 int setNextPointer(void *pvBuf, uint32_t cbBuf) 552 677 { … … 568 693 } 569 694 695 /** 696 * Appends a new message parameter of type string. 697 * 698 * @returns VBox status code. 699 * @param pszString Pointer to string data to use. 700 */ 570 701 int setNextString(const char *pszString) 571 702 { … … 582 713 } 583 714 715 /** 716 * Appends a new message parameter of type uint32_t. 717 * 718 * @returns VBox status code. 719 * @param u32Val uint32_t value to use. 720 */ 584 721 int setNextUInt32(uint32_t u32Val) 585 722 { … … 592 729 } 593 730 731 /** 732 * Appends a new message parameter of type uint64_t. 733 * 734 * @returns VBox status code. 735 * @param u64Val uint64_t value to use. 736 */ 594 737 int setNextUInt64(uint64_t u64Val) 595 738 { … … 602 745 } 603 746 747 /** 748 * Sets the HGCM message type (function number). 749 * 750 * @param uMsgType Message type to set. 751 */ 604 752 void setType(uint32_t uMsgType) { uMsg = uMsgType; } 605 753 … … 718 866 public: 719 867 868 /** 869 * Creates the Singleton GuestDnD object. 870 * 871 * @returns Newly created Singleton object, or NULL on failure. 872 */ 720 873 static GuestDnD *createInstance(const ComObjPtr<Guest>& pGuest) 721 874 { … … 725 878 } 726 879 880 /** 881 * Destroys the Singleton GuestDnD object. 882 */ 727 883 static void destroyInstance(void) 728 884 { … … 734 890 } 735 891 892 /** 893 * Returns the Singleton GuestDnD object. 894 * 895 * @returns Pointer to Singleton GuestDnD object, or NULL if not created yet. 896 */ 736 897 static inline GuestDnD *getInstance(void) 737 898 { -
trunk/src/VBox/Main/src-client/GuestDnDPrivate.cpp
r85537 r85553 157 157 158 158 159 /******************************************************************************************************************************** 160 * 159 /********************************************************************************************************************************* 160 * Internal macros. * 161 161 ********************************************************************************************************************************/ 162 162 163 /** Tries locking the GuestDnD object and returns on failure. */ 163 164 #define GUESTDND_LOCK() \ 164 165 { \ … … 168 169 } 169 170 171 /** Tries locking the GuestDnD object and returns a_Ret failure. */ 170 172 #define GUESTDND_LOCK_RET(a_Ret) \ 171 173 { \ … … 175 177 } 176 178 179 /** Unlocks a formerly locked GuestDnD object. */ 177 180 #define GUESTDND_UNLOCK() \ 178 181 { \ … … 181 184 } 182 185 183 /******************************************************************************************************************************** 184 * 186 /********************************************************************************************************************************* 187 * GuestDnDSendCtx implementation. * 185 188 ********************************************************************************************************************************/ 186 189 … … 192 195 } 193 196 197 /** 198 * Resets a GuestDnDSendCtx object. 199 */ 194 200 void GuestDnDSendCtx::reset(void) 195 201 { … … 208 214 209 215 /********************************************************************************************************************************* 210 * 216 * GuestDnDRecvCtx implementation. * 211 217 ********************************************************************************************************************************/ 212 218 … … 218 224 } 219 225 226 /** 227 * Resets a GuestDnDRecvCtx object. 228 */ 220 229 void GuestDnDRecvCtx::reset(void) 221 230 { … … 237 246 238 247 /********************************************************************************************************************************* 239 * 248 * GuestDnDCallbackEvent implementation. * 240 249 ********************************************************************************************************************************/ 241 250 … … 246 255 } 247 256 257 /** 258 * Resets a GuestDnDCallbackEvent object. 259 */ 248 260 int GuestDnDCallbackEvent::Reset(void) 249 261 { … … 257 269 } 258 270 271 /** 272 * Completes a callback event by notifying the waiting side. 273 * 274 * @returns VBox status code. 275 * @param rc Result code to use for the event completion. 276 */ 259 277 int GuestDnDCallbackEvent::Notify(int rc /* = VINF_SUCCESS */) 260 278 { … … 263 281 } 264 282 283 /** 284 * Waits on a callback event for being notified. 285 * 286 * @returns VBox status code. 287 * @param msTimeout Timeout (in ms) to wait for callback event. 288 */ 265 289 int GuestDnDCallbackEvent::Wait(RTMSINTERVAL msTimeout) 266 290 { … … 291 315 } 292 316 317 /** 318 * Notifies the waiting side about a guest notification response. 319 */ 293 320 int GuestDnDResponse::notifyAboutGuestResponse(void) const 294 321 { … … 296 323 } 297 324 325 /** 326 * Resets a GuestDnDResponse object. 327 */ 298 328 void GuestDnDResponse::reset(void) 299 329 { … … 306 336 } 307 337 338 /** 339 * Resets the progress object. 340 * 341 * @returns HRESULT 342 * @param pParent Parent to set for the progress object. 343 */ 308 344 HRESULT GuestDnDResponse::resetProgress(const ComObjPtr<Guest>& pParent) 309 345 { … … 321 357 } 322 358 359 /** 360 * Returns whether the progress object has been canceled or not. 361 * 362 * @returns \c true if canceled, \c false if not. 363 */ 323 364 bool GuestDnDResponse::isProgressCanceled(void) const 324 365 { … … 335 376 } 336 377 378 /** 379 * Sets a callback for a specific HGCM message. 380 * 381 * @returns VBox status code. 382 * @param uMsg HGCM message ID to set callback for. 383 * @param pfnCallback Callback function pointer to use. 384 * @param pvUser User-provided arguments for the callback function. Optional and can be NULL. 385 */ 337 386 int GuestDnDResponse::setCallback(uint32_t uMsg, PFNGUESTDNDCALLBACK pfnCallback, void *pvUser /* = NULL */) 338 387 { … … 359 408 } 360 409 410 /** 411 * Sets the progress object to a new state. 412 * 413 * @returns VBox status code. 414 * @param uPercentage Percentage (0-100) to set. 415 * @param uStatus Status (of type DND_PROGRESS_XXX) to set. 416 * @param rcOp IPRT-style result code to set. Optional. 417 * @param strMsg Message to set. Optional. 418 */ 361 419 int GuestDnDResponse::setProgress(unsigned uPercentage, uint32_t uStatus, 362 420 int rcOp /* = VINF_SUCCESS */, const Utf8Str &strMsg /* = "" */) … … 454 512 } 455 513 514 /** 515 * Dispatching function for handling the host service service callback. 516 * 517 * @returns VBox status code. 518 * @param u32Function HGCM message ID to handle. 519 * @param pvParms Pointer to optional data provided for a particular message. Optional. 520 * @param cbParms Size (in bytes) of \a pvParms. 521 */ 456 522 int GuestDnDResponse::onDispatch(uint32_t u32Function, void *pvParms, uint32_t cbParms) 457 523 { … … 595 661 } 596 662 663 /** 664 * Helper function to query the internal progress object to an IProgress interface. 665 * 666 * @returns HRESULT 667 * @param ppProgress Where to query the progress object to. 668 */ 597 669 HRESULT GuestDnDResponse::queryProgressTo(IProgress **ppProgress) 598 670 { … … 600 672 } 601 673 674 /** 675 * Waits for a guest response to happen. 676 * 677 * @returns VBox status code. 678 * @param msTimeout Timeout (in ms) for waiting. Optional, waits 500 ms if not specified. 679 */ 602 680 int GuestDnDResponse::waitForGuestResponse(RTMSINTERVAL msTimeout /*= 500 */) const 603 681 { … … 610 688 611 689 /********************************************************************************************************************************* 612 * 690 * GuestDnD implementation. * 613 691 ********************************************************************************************************************************/ 614 692 693 /** Static (Singleton) instance of the GuestDnD object. */ 615 694 GuestDnD* GuestDnD::s_pInstance = NULL; 616 695 … … 656 735 } 657 736 737 /** 738 * Adjusts coordinations to a given screen. 739 * 740 * @returns HRESULT 741 * @param uScreenId ID of screen to adjust coordinates to. 742 * @param puX Pointer to X coordinate to adjust. Will return the adjusted value on success. 743 * @param puY Pointer to Y coordinate to adjust. Will return the adjusted value on success. 744 */ 658 745 HRESULT GuestDnD::adjustScreenCoordinates(ULONG uScreenId, ULONG *puX, ULONG *puY) const 659 746 { … … 686 773 } 687 774 775 /** 776 * Sends a (blocking) message to the host side of the host service. 777 * 778 * @returns VBox status code. 779 * @param u32Function HGCM message ID to send. 780 * @param cParms Number of parameters to send. 781 * @param paParms Array of parameters to send. Must match \c cParms. 782 */ 688 783 int GuestDnD::hostCall(uint32_t u32Function, uint32_t cParms, PVBOXHGCMSVCPARM paParms) const 689 784 { … … 700 795 } 701 796 797 /** 798 * Registers a GuestDnDSource object with the GuestDnD manager. 799 * 800 * Currently only one source is supported at a time. 801 * 802 * @returns VBox status code. 803 * @param Source Source to register. 804 */ 702 805 int GuestDnD::registerSource(const ComObjPtr<GuestDnDSource> &Source) 703 806 { … … 711 814 } 712 815 816 /** 817 * Unregisters a GuestDnDSource object from the GuestDnD manager. 818 * 819 * @returns VBox status code. 820 * @param Source Source to unregister. 821 */ 713 822 int GuestDnD::unregisterSource(const ComObjPtr<GuestDnDSource> &Source) 714 823 { … … 723 832 } 724 833 834 /** 835 * Returns the current number of registered sources. 836 * 837 * @returns Current number of registered sources. 838 */ 725 839 size_t GuestDnD::getSourceCount(void) 726 840 { … … 733 847 } 734 848 849 /** 850 * Registers a GuestDnDTarget object with the GuestDnD manager. 851 * 852 * Currently only one target is supported at a time. 853 * 854 * @returns VBox status code. 855 * @param Target Target to register. 856 */ 735 857 int GuestDnD::registerTarget(const ComObjPtr<GuestDnDTarget> &Target) 736 858 { … … 744 866 } 745 867 868 /** 869 * Unregisters a GuestDnDTarget object from the GuestDnD manager. 870 * 871 * @returns VBox status code. 872 * @param Target Target to unregister. 873 */ 746 874 int GuestDnD::unregisterTarget(const ComObjPtr<GuestDnDTarget> &Target) 747 875 { … … 756 884 } 757 885 886 /** 887 * Returns the current number of registered targets. 888 * 889 * @returns Current number of registered targets. 890 */ 758 891 size_t GuestDnD::getTargetCount(void) 759 892 { … … 766 899 } 767 900 901 /** 902 * Static main dispatcher function to handle callbacks from the DnD host service. 903 * 904 * @returns VBox status code. 905 * @param pvExtension Pointer to service extension. 906 * @param u32Function Callback HGCM message ID. 907 * @param pvParms Pointer to optional data provided for a particular message. Optional. 908 * @param cbParms Size (in bytes) of \a pvParms. 909 */ 768 910 /* static */ 769 911 DECLCALLBACK(int) GuestDnD::notifyDnDDispatcher(void *pvExtension, uint32_t u32Function, … … 786 928 } 787 929 930 /** 931 * Static helper function to determine whether a format is part of a given MIME list. 932 * 933 * @returns \c true if found, \c false if not. 934 * @param strFormat Format to search for. 935 * @param lstFormats MIME list to search in. 936 */ 788 937 /* static */ 789 938 bool GuestDnD::isFormatInFormatList(const com::Utf8Str &strFormat, const GuestDnDMIMEList &lstFormats) … … 792 941 } 793 942 943 /** 944 * Static helper function to create a GuestDnDMIMEList out of a format list string. 945 * 946 * @returns MIME list object. 947 * @param strFormats List of formats (separated by DND_FORMATS_SEPARATOR) to convert. 948 */ 794 949 /* static */ 795 950 GuestDnDMIMEList GuestDnD::toFormatList(const com::Utf8Str &strFormats) … … 804 959 } 805 960 961 /** 962 * Static helper function to create a format list string from a given GuestDnDMIMEList object. 963 * 964 * @returns Format list string. 965 * @param lstFormats GuestDnDMIMEList to convert. 966 */ 806 967 /* static */ 807 968 com::Utf8Str GuestDnD::toFormatString(const GuestDnDMIMEList &lstFormats) … … 817 978 } 818 979 980 /** 981 * Static helper function to create a filtered GuestDnDMIMEList object from supported and wanted formats. 982 * 983 * @returns Filtered MIME list object. 984 * @param lstFormatsSupported MIME list of supported formats. 985 * @param lstFormatsWanted MIME list of wanted formats in returned object. 986 */ 819 987 /* static */ 820 988 GuestDnDMIMEList GuestDnD::toFilteredFormatList(const GuestDnDMIMEList &lstFormatsSupported, const GuestDnDMIMEList &lstFormatsWanted) … … 835 1003 } 836 1004 1005 /** 1006 * Static helper function to create a filtered GuestDnDMIMEList object from supported and wanted formats. 1007 * 1008 * @returns Filtered MIME list object. 1009 * @param lstFormatsSupported MIME list of supported formats. 1010 * @param strFormatsWanted Format list string of wanted formats in returned object. 1011 */ 837 1012 /* static */ 838 1013 GuestDnDMIMEList GuestDnD::toFilteredFormatList(const GuestDnDMIMEList &lstFormatsSupported, const com::Utf8Str &strFormatsWanted) … … 856 1031 } 857 1032 1033 /** 1034 * Static helper function to convert a Main DnD action an internal DnD action. 1035 * 1036 * @returns Internal DnD action, or VBOX_DND_ACTION_IGNORE if not found / supported. 1037 * @param enmAction Main DnD action to convert. 1038 */ 858 1039 /* static */ 859 1040 VBOXDNDACTION GuestDnD::toHGCMAction(DnDAction_T enmAction) … … 882 1063 } 883 1064 1065 /** 1066 * Static helper function to convert a Main DnD default action and allowed Main actions to their 1067 * corresponding internal representations. 1068 * 1069 * @param enmDnDActionDefault Default Main action to convert. 1070 * @param pDnDActionDefault Where to store the converted default action. 1071 * @param vecDnDActionsAllowed Allowed Main actions to convert. 1072 * @param pDnDLstActionsAllowed Where to store the converted allowed actions. 1073 */ 884 1074 /* static */ 885 1075 void GuestDnD::toHGCMActions(DnDAction_T enmDnDActionDefault, … … 916 1106 } 917 1107 1108 /** 1109 * Static helper function to convert an internal DnD action to its Main representation. 1110 * 1111 * @returns Converted Main DnD action. 1112 * @param dndAction DnD action to convert. 1113 */ 918 1114 /* static */ 919 1115 DnDAction_T GuestDnD::toMainAction(VBOXDNDACTION dndAction) … … 926 1122 } 927 1123 1124 /** 1125 * Static helper function to convert an internal DnD action list to its Main representation. 1126 * 1127 * @returns Converted Main DnD action list. 1128 * @param dndActionList DnD action list to convert. 1129 */ 928 1130 /* static */ 929 1131 std::vector<DnDAction_T> GuestDnD::toMainActions(VBOXDNDACTIONLIST dndActionList) … … 946 1148 947 1149 /********************************************************************************************************************************* 948 * 1150 * GuestDnDBase implementation. * 949 1151 ********************************************************************************************************************************/ 950 1152 … … 959 1161 } 960 1162 1163 /** 1164 * Checks whether a given DnD format is supported or not. 1165 * 1166 * @returns HRESULT 1167 * @param aFormat DnD format to check. 1168 * @param aSupported Where to return \c TRUE if supported, or \c FALSE if not. 1169 */ 961 1170 HRESULT GuestDnDBase::i_isFormatSupported(const com::Utf8Str &aFormat, BOOL *aSupported) 962 1171 { … … 967 1176 } 968 1177 1178 /** 1179 * Returns the currently supported DnD formats. 1180 * 1181 * @returns HRESULT 1182 * @param aFormats Where to store list of the supported DnD formats. 1183 */ 969 1184 HRESULT GuestDnDBase::i_getFormats(GuestDnDMIMEList &aFormats) 970 1185 { … … 974 1189 } 975 1190 1191 /** 1192 * Adds DnD formats to the supported formats list. 1193 * 1194 * @returns HRESULT 1195 * @param aFormats List of DnD formats to add. 1196 */ 976 1197 HRESULT GuestDnDBase::i_addFormats(const GuestDnDMIMEList &aFormats) 977 1198 { … … 989 1210 } 990 1211 1212 /** 1213 * Removes DnD formats from tehh supported formats list. 1214 * 1215 * @returns HRESULT 1216 * @param aFormats List of DnD formats to remove. 1217 */ 991 1218 HRESULT GuestDnDBase::i_removeFormats(const GuestDnDMIMEList &aFormats) 992 1219 { … … 1003 1230 } 1004 1231 1232 /* Deprecated. */ 1005 1233 HRESULT GuestDnDBase::i_getProtocolVersion(ULONG *puVersion) 1006 1234 { … … 1012 1240 * Tries to guess the DnD protocol version to use on the guest, based on the 1013 1241 * installed Guest Additions version + revision. 1242 * 1243 * Deprecated. 1014 1244 * 1015 1245 * If unable to retrieve the protocol version, VERR_NOT_FOUND is returned along … … 1067 1297 } 1068 1298 1299 /** 1300 * Adds a new guest DnD message to the internal message queue. 1301 * 1302 * @returns VBox status code. 1303 * @param pMsg Pointer to message to add. 1304 */ 1069 1305 int GuestDnDBase::msgQueueAdd(GuestDnDMsg *pMsg) 1070 1306 { … … 1073 1309 } 1074 1310 1311 /** 1312 * Returns the next guest DnD message in the internal message queue (FIFO). 1313 * 1314 * @returns Pointer to guest DnD message, or NULL if none found. 1315 */ 1075 1316 GuestDnDMsg *GuestDnDBase::msgQueueGetNext(void) 1076 1317 { … … 1080 1321 } 1081 1322 1323 /** 1324 * Removes the next guest DnD message from the internal message queue. 1325 */ 1082 1326 void GuestDnDBase::msgQueueRemoveNext(void) 1083 1327 { … … 1091 1335 } 1092 1336 1337 /** 1338 * Clears the internal message queue. 1339 */ 1093 1340 void GuestDnDBase::msgQueueClear(void) 1094 1341 { … … 1108 1355 } 1109 1356 1357 /** 1358 * Sends a request to the guest side to cancel the current DnD operation. 1359 * 1360 * @returns VBox status code. 1361 */ 1110 1362 int GuestDnDBase::sendCancel(void) 1111 1363 { … … 1124 1376 } 1125 1377 1378 /** 1379 * Helper function to update the progress based on given a GuestDnDData object. 1380 * 1381 * @returns VBox status code. 1382 * @param pData GuestDnDData object to use for accounting. 1383 * @param pResp GuestDnDResponse to update its progress object for. 1384 * @param cbDataAdd By how much data (in bytes) to update the progress. 1385 */ 1126 1386 int GuestDnDBase::updateProgress(GuestDnDData *pData, GuestDnDResponse *pResp, 1127 1387 size_t cbDataAdd /* = 0 */) … … 1153 1413 } 1154 1414 1155 /** @todo GuestDnDResponse *pResp needs to go. */ 1415 /** 1416 * Waits for a specific guest callback event to get signalled. 1417 * 1418 ** @todo GuestDnDResponse *pResp needs to go. 1419 * 1420 * @returns VBox status code. Will return VERR_CANCELLED if the user has cancelled the progress object. 1421 * @param pEvent Callback event to wait for. 1422 * @param pResp Response to update. 1423 * @param msTimeout Timeout (in ms) to wait. 1424 */ 1156 1425 int GuestDnDBase::waitForEvent(GuestDnDCallbackEvent *pEvent, GuestDnDResponse *pResp, RTMSINTERVAL msTimeout) 1157 1426 {
Note:
See TracChangeset
for help on using the changeset viewer.