DrgFreeDraginfo: Difference between revisions
Appearance
Created page with "This function frees a DRAGINFO structure allocated by DrgAllocDraginfo. ==Syntax== DrgFreeDraginfo(pdinfo) ==Parameters== ;pdinfo (PDRAGINFO) - input: Pointer to the DRAGINFO structure. ==Returns== ;rc (BOOL) - returns: Success indicator. :: TRUE - Successful completion. :: FALSE - Error occurred. ==Remarks== DrgFreeDraginfo fails with an error of PMERR_SOURCE_SAME_AS_TARGET if it is called by the process that called DrgDrag before DrgDrag returns. W..." |
|||
| Line 16: | Line 16: | ||
==Errors== | ==Errors== | ||
Possible returns from WinGetLastError: | Possible returns from [[WinGetLastError]]: | ||
;PMERR_MEMORY_DEALLOCATION_ERR (0x1113): An error occurred during memory management. | ;PMERR_MEMORY_DEALLOCATION_ERR (0x1113): An error occurred during memory management. | ||
;PMERR_SOURCE_SAME_AS_TARGET (0x1502): The direct manipulation source and target process are the same. | ;PMERR_SOURCE_SAME_AS_TARGET (0x1502): The direct manipulation source and target process are the same. | ||
Revision as of 03:38, 25 April 2025
This function frees a DRAGINFO structure allocated by DrgAllocDraginfo.
Syntax
DrgFreeDraginfo(pdinfo)
Parameters
- pdinfo (PDRAGINFO) - input
- Pointer to the DRAGINFO structure.
Returns
- rc (BOOL) - returns
- Success indicator.
- TRUE - Successful completion.
- FALSE - Error occurred.
Remarks
DrgFreeDraginfo fails with an error of PMERR_SOURCE_SAME_AS_TARGET if it is called by the process that called DrgDrag before DrgDrag returns. When a process is performing a drag operation between two of its own windows, this prevents the source window from freeing the DRAGINFO structure before the target window finishes processing.
Errors
Possible returns from WinGetLastError:
- PMERR_MEMORY_DEALLOCATION_ERR (0x1113)
- An error occurred during memory management.
- PMERR_SOURCE_SAME_AS_TARGET (0x1502)
- The direct manipulation source and target process are the same.
Example Code
#define INCL_WINSTDDRAG /* Direct Manipulation (Drag) Functions */
#include <os2.h>
BOOL fSuccess; /* Indicate success or failure */
PDRAGINFO pdinfo; /* Pointer to DRAGINFO structure */
HWND hwnd; /* Handle of calling (source) window */
DRAGIMAGE dimg; /* DRAGIMAGE structure */
HWND hwndDrop; /* Handle of drop (target) window */
/****************************************************************/
/* Perform the drag operation: */
/* - Give the user a visual cue by changing the pointer to a */
/* bit map */
/* - Send DM_DRAGOVER messages to the target window (in this */
/* case it is also the source) */
/****************************************************************/
hwndDrop = DrgDrag(hwnd, /* Source of the drag */
pdinfo, /* Pointer to DRAGINFO structure */
(PDRAGIMAGE)&dimg, /* Drag image */
1, /* Size of the pdimg array */
VK_ENDDRAG, /* Release of drag button */
/* Terminates the drag */
NULL); /* Reserved */
fSuccess = DrgFreeDraginfo(&pdinfo);