123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- {
- This file is part of the Free Pascal run time library.
- Copyright (c) 2016 by Free Pascal development team
- clipboard device functions for Amiga OS 4.x
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- **********************************************************************}
- {$IFNDEF FPC_DOTTEDUNITS}
- unit clipboard;
- {$ENDIF FPC_DOTTEDUNITS}
- {$PACKRECORDS 2}
- interface
- {$IFDEF FPC_DOTTEDUNITS}
- uses
- Amiga.Core.Exec;
- {$ELSE FPC_DOTTEDUNITS}
- uses
- exec;
- {$ENDIF FPC_DOTTEDUNITS}
- const
- CBD_POST = CMD_NONSTD + 0;
- CBD_CURRENTREADID = CMD_NONSTD + 1;
- CBD_CURRENTWRITEID = CMD_NONSTD + 2;
- CBD_CHANGEHOOK = CMD_NONSTD + 3;
- CBERR_OBSOLETEID = 1;
- type
- PClipboardUnitPartial = ^TClipboardUnitPartial;
- TClipboardUnitPartial = record
- cu_Node: TNode; // list of units
- cu_UnitNum: LongWord; // unit number for this unit
- // the remaining unit data is private to the device
- end;
- PIOClipReq = ^TIOClipReq;
- TIOClipReq = record
- io_Message: TMessage;
- io_Device: PDevice; // device node pointer
- io_Unit: PClipboardUnitPartial; // unit (driver private)
- io_Command: Word; // device command
- io_Flags: Byte; // including QUICK and SATISFY
- io_Error: Shortint; // error or warning num
- io_Actual: LongWord; // number of bytes transferred
- io_Length: LongWord; // number of bytes requested
- io_Data: STRPTR; // either clip stream or post port
- io_Offset: LongWord; // offset in clip stream
- io_ClipID: Longint; // ordinal clip identifier
- end;
- const
- PRIMARY_CLIP = 0; // primary clip unit
- type
- PSatisfyMsg = ^TSatisfyMsg;
- TSatisfyMsg = record
- sm_Msg: TMessage; // the length will be 6
- sm_Unit: Word; // which clip unit this is
- sm_ClipID: Longint; // the clip identifier of the post
- end;
- PClipHookMsg = ^TClipHookMsg;
- TClipHookMsg = record
- chm_Type: LongWord; // zero for this structure format
- chm_ChangeCmd: LongInt; // command that caused this hook invocation: either CMD_UPDATE OR CBD_POST
- chm_ClipID : Longint; // the clip identifier of the new data
- end;
- implementation
- end.
|