home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
mod201j.zip
/
modula2.exe
/
os2api
/
winstddr.def
< prev
next >
Wrap
Text File
|
1994-05-03
|
18KB
|
449 lines
DEFINITION MODULE WINSTDDRAG;
(************************************************************************
OS/2 2.0 interface for Presentation Manager
CUA standard drag dll.
Copyright (c) 1992 by Juergen Neuhoff
*************************************************************************)
(*$XL+ Modula-2 language extensions: '_' allowed for symbol names *)
(*$CDECL+ C-style procedures *)
(*$A default alignment for record fields *)
IMPORT SYSTEM;
FROM OS2DEF IMPORT TYPEPREFIX, HWND, LHANDLE, HPS, PSZ;
FROM WINDEF IMPORT MPARAM, MRESULT;
FROM GPIDEF IMPORT SIZEL;
FROM WINPOINTERS IMPORT HPOINTER;
CONST
PMERR_NOT_DRAGGING = 1F00H;
PMERR_ALREADY_DRAGGING = 1F01H;
CONST
MSGF_DRAG = 0010H; (* message filter identifier *)
CONST
WM_DRAGFIRST = 0310H;
WM_DRAGLAST = 032FH;
CONST
DM_DROP = 032FH;
DM_DRAGOVER = 032EH;
DM_DRAGLEAVE = 032DH;
DM_DROPHELP = 032CH;
DM_ENDCONVERSATION = 032BH;
DM_PRINT = 032AH;
DM_RENDER = 0329H;
DM_RENDERCOMPLETE = 0328H;
DM_RENDERPREPARE = 0327H;
DM_DRAGFILECOMPLETE = 0326H;
DM_EMPHASIZETARGET = 0325H;
DM_DRAGERROR = 0324H;
DM_FILERENDERED = 0323H;
DM_RENDERFILE = 0322H;
DM_DRAGOVERNOTIFY = 0321H;
DM_PRINTOBJECT = 0320H;
DM_DISCARDOBJECT = 031FH;
CONST (* drag type constants *)
DRT_ASM = "Assembler Code";
DRT_BASIC = "BASIC Code";
DRT_BINDATA = "Binary Data";
DRT_BITMAP = "Bitmap";
DRT_C = "C Code";
DRT_COBOL = "COBOL Code";
DRT_DLL = "Dynamic Link Library";
DRT_DOSCMD = "DOS Command File";
DRT_EXE = "Executable";
DRT_FORTRAN = "FORTRAN Code";
DRT_ICON = "Icon";
DRT_LIB = "Library";
DRT_METAFILE = "Metafile";
DRT_OS2CMD = "OS/2 Command File";
DRT_PASCAL = "Pascal Code";
DRT_RESOURCE = "Resource File";
DRT_TEXT = "Plain Text";
DRT_UNKNOWN = "Unknown";
CONST (* DM_DRAGOVER response codes *)
DOR_NODROP = 0000H;
DOR_DROP = 0001H;
DOR_NODROPOP = 0002H;
DOR_NEVERDROP = 0003H;
CONST (* supported operation flags *)
DO_COPYABLE = 0001H;
DO_MOVEABLE = 0002H;
DO_LINKABLE = 0004H;
CONST (* source control flags *)
DC_OPEN = 0001H;
DC_REF = 0002H;
DC_GROUP = 0004H;
DC_CONTAINER = 0008H;
DC_PREPARE = 0010H;
DC_REMOVEABLEMEDIA = 0020H;
CONST
DO_DEFAULT = 0BFFEH; (* Default operation *)
DO_UNKNOWN = 0BFFFH; (* Unknown operation *)
DO_COPY = 00010H;
DO_MOVE = 00020H;
DO_LINK = 00018H;
DO_CREATE = 00040H;
CONST (* transfer reply flags *)
DMFL_TARGETSUCCESSFUL = 0001H;
DMFL_TARGETFAIL = 0002H;
DMFL_NATIVERENDER = 0004H;
DMFL_RENDERRETRY = 0008H;
DMFL_RENDEROK = 0010H;
DMFL_RENDERFAIL = 0020H;
CONST (* drag image manipulation flags *)
DRG_ICON = 00000001H;
DRG_BITMAP = 00000002H;
DRG_POLYGON = 00000004H;
DRG_STRETCH = 00000008H;
DRG_TRANSPARENT = 00000010H;
DRG_CLOSED = 00000020H;
CONST (* DM_DRAGERROR return values *)
DME_IGNOREABORT = 1;
DME_IGNORECONTINUE = 2;
DME_REPLACE = 3;
DME_RETRY = 4;
CONST (* DM_DRAGFILECOMPLETE flags *)
DF_MOVE = 0001H;
DF_SOURCE = 0002H;
DF_SUCCESSFUL = 0004H;
CONST
DRR_SOURCE = 1;
DRR_TARGET = 2;
DRR_ABORT = 3;
CONST (* DM_DRAGERROR operation IDs *)
DFF_MOVE = 1;
DFF_COPY = 2;
DFF_DELETE = 3;
TYPE
HSTR = LHANDLE; (* hstr *)
TYPE
DRAGITEM = RECORD (* ditem *)
CASE : TYPEPREFIX OF
| TRUE :
hwndItem : HWND; (* conversation partner *)
ulItemID : LONGCARD; (* identifies item being dragged *)
hstrType : HSTR; (* type of item *)
hstrRMF : HSTR; (* rendering mechanism and format *)
hstrContainerName : HSTR; (* name of source container *)
hstrSourceName : HSTR; (* name of item at source *)
hstrTargetName : HSTR; (* suggested name of item at dest *)
cxOffset : INTEGER; (* x offset of the origin of the *)
(* image from the mouse hotspot *)
cyOffset : INTEGER; (* y offset of the origin of the *)
(* image from the mouse hotspot *)
fsControl : CARDINAL; (* source item control flags *)
fsSupportedOps : CARDINAL; (* ops supported by source *)
| FALSE :
ItemWinHandle : HWND; (* conversation partner *)
IdemtID : LONGCARD; (* identifies item being dragged *)
TypeStrHandle : HSTR; (* type of item *)
RMFStrHandle : HSTR; (* rendering mechanism and format *)
ContainerNameStrHandle : HSTR; (* name of source container *)
SourceNameStrHandle : HSTR; (* name of item at source *)
TargetNameStrHandle : HSTR; (* suggested name of item at dest *)
xOffset : INTEGER; (* x offset of the origin of the *)
(* image from the mouse hotspot *)
yOffset : INTEGER; (* y offset of the origin of the *)
(* image from the mouse hotspot *)
ControlFlags : CARDINAL; (* source item control flags *)
SupportedOps : CARDINAL; (* ops supported by source *)
END; END;
PDRAGITEM = POINTER TO DRAGITEM;
TYPE
DRAGINFO = RECORD (* dinfo *)
CASE : TYPEPREFIX OF
| TRUE :
cbDraginfo : LONGCARD; (* Size of DRAGINFO and DRAGITEMs *)
cbDragitem : CARDINAL; (* size of DRAGITEM *)
usOperation : CARDINAL; (* current drag operation *)
hwndSource : HWND; (* window handle of source *)
| FALSE :
DraginfoSize : LONGCARD; (* Size of DRAGINFO and DRAGITEMs *)
DragitemSize : CARDINAL; (* size of DRAGITEM *)
Operation : CARDINAL; (* current drag operation *)
SourceWinHandle : HWND; (* window handle of source *)
END;
xDrop : INTEGER; (* x coordinate of drop position *)
yDrop : INTEGER; (* y coordinate of drop position *)
CASE : TYPEPREFIX OF
| TRUE :
cditem : CARDINAL; (* count of DRAGITEMs *)
usReserved : CARDINAL; (* reserved for future use *)
| FALSE :
ItemCount : CARDINAL; (* count of DRAGITEMs *)
Reserved : CARDINAL; (* reserved for future use *)
END; END;
PDRAGINFO = POINTER TO DRAGINFO;
TYPE
DRAGIMAGE = RECORD (* dimg *)
CASE : TYPEPREFIX OF
| TRUE :
cb : CARDINAL; (* size control block *)
cptl : CARDINAL; (* count of pts, if DRG_POLYGON *)
hImage : LHANDLE; (* image handle passed to DrgDrag *)
sizlStretch : SIZEL; (* size to strecth ico or bmp to *)
fl : LONGCARD; (* flags passed to DrgDrag *)
cxOffset : INTEGER; (* x offset of the origin of the *)
(* image from the mouse hotspot *)
cyOffset : INTEGER; (* y offset of the origin of the *)
(* image from the mouse hotspot *)
| FALSE :
Size : CARDINAL; (* size control block *)
PointCount : CARDINAL; (* count of pts, if DRG_POLYGON *)
ImageHandle : LHANDLE; (* image handle passed to DrgDrag *)
StretchSize : SIZEL; (* size to strecth ico or bmp to *)
Flags : LONGCARD; (* flags passed to DrgDrag *)
xOffset : INTEGER; (* x offset of the origin of the *)
(* image from the mouse hotspot *)
yOffset : INTEGER; (* y offset of the origin of the *)
(* image from the mouse hotspot *)
END; END;
PDRAGIMAGE = POINTER TO DRAGIMAGE;
TYPE
DRAGTRANSFER = RECORD (* dxfer *)
CASE : TYPEPREFIX OF
| TRUE :
cb : LONGCARD; (* size of control block *)
hwndClient : HWND; (* handle of target *)
pditem : PDRAGITEM;(* DRAGITEM being transferred *)
hstrSelectedRMF : HSTR; (* rendering mech & fmt of choice *)
hstrRenderToName : HSTR; (* name source will use *)
ulTargetInfo : LONGCARD; (* reserved for target's use *)
usOperation : CARDINAL; (* operation being performed *)
fsReply : CARDINAL; (* reply flags *)
| FALSE :
Size : LONGCARD; (* size of control block *)
ClientWinHandle : HWND; (* handle of target *)
DragItem : PDRAGITEM;(* DRAGITEM being transferred *)
SelectedRMFStrHandle : HSTR; (* rendering mech & fmt of choice *)
RenderToNameStrHandle : HSTR; (* name source will use *)
TargetInfo : LONGCARD; (* reserved for target's use *)
Operation : CARDINAL; (* operation being performed *)
ReplyFlags : CARDINAL; (* reply flags *)
END; END;
PDRAGTRANSFER = POINTER TO DRAGTRANSFER;
TYPE
RENDERFILE = RECORD (* rndf *)
CASE : TYPEPREFIX OF
| TRUE :
hwndDragFiles : HWND; (* conversation window *)
hstrSource : HSTR; (* handle to source file name *)
hstrTarget : HSTR; (* handle to target file name *)
fMove : CARDINAL; (* TRUE - move, FALSE - copy *)
usRsvd : CARDINAL; (* reserved *)
| FALSE :
DragFilesWinHandle : HWND; (* conversation window *)
SourceStrHandle : HSTR; (* handle to source file name *)
TargetStrHandle : HSTR; (* handle to target file name *)
MoveFlag : CARDINAL; (* TRUE - move, FALSE - copy *)
Reserved : CARDINAL; (* reserved *)
END; END;
PRENDERFILE = POINTER TO RENDERFILE;
PROCEDURE DrgAcceptDroppedFiles
( WinHandle : HWND;
Path : PSZ;
Types : PSZ;
DefaultOp : LONGCARD;
Reserved : LONGCARD
) : BOOLEAN;
PROCEDURE DrgAllocDraginfo
( DragItemCount : LONGCARD
) : PDRAGINFO;
PROCEDURE DrgAllocDragtransfer
( DragTransferCount : LONGCARD
) : PDRAGTRANSFER;
PROCEDURE DrgDrag
( SourceWinHandle : HWND;
VAR DragInfo : DRAGINFO;
VAR DragImage : ARRAY OF DRAGIMAGE;
DragImageCount : LONGCARD;
TerminateButton : LONGINT;
Reserved : SYSTEM.ADDRESS
) : HWND;
PROCEDURE DrgDragFiles
( WinHandle : HWND;
VAR Files : ARRAY OF PSZ;
VAR Types : ARRAY OF PSZ;
VAR Targets : ARRAY OF PSZ;
FilesCount : LONGCARD;
DragPointerHandle : HPOINTER;
TerminateButton : LONGCARD;
SourceRenderFlag : BOOLEAN;
Reserved : LONGCARD
) : BOOLEAN;
PROCEDURE DrgPostTransferMsg
( WinHandle : HWND;
MsgId : LONGCARD;
VAR DragTransfer : DRAGTRANSFER;
Flags : LONGCARD;
Reserved : LONGCARD;
Retry : BOOLEAN
) : BOOLEAN;
PROCEDURE DrgQueryDragitem
( VAR DragInfo : DRAGINFO;
BufferSize : LONGCARD;
VAR DragItem : DRAGITEM;
ItemIndex : LONGCARD
) : BOOLEAN;
PROCEDURE DrgQueryDragitemCount
( VAR DragInfo : DRAGINFO
) : LONGCARD;
PROCEDURE DrgQueryDragitemPtr
( VAR DragInfo : DRAGINFO;
Index : LONGCARD
) : PDRAGITEM;
PROCEDURE DrgQueryNativeRMF
( VAR DragItem : DRAGITEM;
BufferSize : LONGCARD;
VAR Buffer : ARRAY OF CHAR
) : BOOLEAN;
PROCEDURE DrgQueryNativeRMFLen
( VAR DragItem : DRAGITEM
) : LONGCARD;
PROCEDURE DrgQueryStrName
( StrHandle : HSTR;
BufferSize : LONGCARD;
VAR Buffer : ARRAY OF CHAR
) : LONGCARD;
PROCEDURE DrgQueryStrNameLen
( StrHandle : HSTR
) : LONGCARD;
PROCEDURE DrgQueryTrueType
( VAR DragItem : DRAGITEM;
BufferSize : LONGCARD;
VAR Buffer : ARRAY OF CHAR
) : BOOLEAN;
PROCEDURE DrgQueryTrueTypeLen
( VAR DragItem : DRAGITEM
) : LONGCARD;
PROCEDURE DrgSendTransferMsg
( WinHandle : HWND;
MsgId : LONGCARD;
Param1 : MPARAM;
Param2 : MPARAM
) : MRESULT;
PROCEDURE DrgSetDragitem
( VAR DragInfo : DRAGINFO;
VAR DragItem : DRAGITEM;
BufferSize : LONGCARD;
DragItemIndex : LONGCARD
) : BOOLEAN;
PROCEDURE DrgSetDragImage
( VAR DragInfo : DRAGINFO;
VAR DragImage : DRAGIMAGE;
DragImageSize : LONGCARD;
Reserved : SYSTEM.ADDRESS
) : BOOLEAN;
PROCEDURE DrgVerifyTypeSet
( VAR DragItem : DRAGITEM;
TypeStr : ARRAY OF CHAR;
BufferSize : LONGCARD;
VAR Buffer : ARRAY OF CHAR
) : BOOLEAN;
PROCEDURE DrgAccessDraginfo
( VAR DragInfo : DRAGINFO
) : BOOLEAN;
PROCEDURE DrgAddStrHandle
( String : ARRAY OF CHAR
) : HSTR;
PROCEDURE DrgDeleteDraginfoStrHandles
( VAR DragInfo : DRAGINFO
) : BOOLEAN;
PROCEDURE DrgDeleteStrHandle
( StrHandle : HSTR
) : BOOLEAN;
PROCEDURE DrgFreeDraginfo
( VAR DragInfo : DRAGINFO
) : BOOLEAN;
PROCEDURE DrgFreeDragtransfer
( DragTransfer : PDRAGTRANSFER
) : BOOLEAN;
PROCEDURE DrgGetPS
( WinHandle : HWND
) : HPS;
PROCEDURE DrgPushDraginfo
( VAR DragInfo : DRAGINFO;
DestWinHandle : HWND
) : BOOLEAN;
PROCEDURE DrgReleasePS
( PresSpaceHandle : HPS
) : BOOLEAN;
PROCEDURE DrgSetDragPointer
( VAR DragInfo : DRAGINFO;
PointerHandle : HPOINTER
) : BOOLEAN;
PROCEDURE DrgVerifyNativeRMF
( VAR DragItem : DRAGITEM;
RMFString : ARRAY OF CHAR
) : BOOLEAN;
PROCEDURE DrgVerifyRMF
( VAR DragItem : DRAGITEM;
MechStr : ARRAY OF CHAR;
FormatStr : ARRAY OF CHAR
) : BOOLEAN;
PROCEDURE DrgVerifyTrueType
( VAR DragItem : DRAGITEM;
TypeStr : ARRAY OF CHAR
) : BOOLEAN;
PROCEDURE DrgVerifyType
( VAR DragItem : DRAGITEM;
TypeStr : ARRAY OF CHAR
) : BOOLEAN;
END WINSTDDRAG.