1 {
2     This file is part of the Free Pascal run time library.
3 
4     A file in Amiga system run time library.
5     Copyright (c) 1998 by Nils Sjoholm
6     member of the Amiga RTL development team.
7 
8     See the file COPYING.FPC, included in this distribution,
9     for details about the copyright.
10 
11     This program is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 
15  **********************************************************************}
16 {$PACKRECORDS 2}
17 unit clipboard;
18 
19 INTERFACE
20 
21 uses exec;
22 
23 const
24     CBD_POST            = CMD_NONSTD + 0;
25     CBD_CURRENTREADID   = CMD_NONSTD + 1;
26     CBD_CURRENTWRITEID  = CMD_NONSTD + 2;
27     CBD_CHANGEHOOK      = CMD_NONSTD + 3;
28 
29     CBERR_OBSOLETEID    = 1;
30 
31 type
32 
33     pClipboardUnitPartial = ^tClipboardUnitPartial;
34     tClipboardUnitPartial = record
35         cu_Node         : tNode;         { list of units }
36         cu_UnitNum      : ULONG;      { unit number for this unit }
37     { the remaining unit data is private to the device }
38     end;
39 
40 
41     pIOClipReq = ^tIOClipReq;
42     tIOClipReq = record
43         io_Message      : tMessage;
44         io_Device       : pDevice;      { device node pointer   }
45         io_Unit         : pClipboardUnitPartial;      { unit (driver private) }
46         io_Command      : Word;        { device command        }
47         io_Flags        : Byte;         { including QUICK and SATISFY }
48         io_Error        : Shortint;     { error or warning num  }
49         io_Actual       : ULONG;        { number of bytes transferred }
50         io_Length       : ULONG;        { number of bytes requested }
51         io_Data         : STRPTR;       { either clip stream or post port }
52         io_Offset       : ULONG;        { offset in clip stream }
53         io_ClipID       : Longint;      { ordinal clip identifier }
54     end;
55 
56 const
57     PRIMARY_CLIP        = 0;    { primary clip unit }
58 
59 type
60 
61     pSatisfyMsg = ^tSatisfyMsg;
62     tSatisfyMsg = record
63         sm_Msg  : tMessage;      { the length will be 6 }
64         sm_Unit : Word;          { which clip unit this is }
65         sm_ClipID : Longint;     { the clip identifier of the post }
66     end;
67 
68    pClipHookMsg = ^tClipHookMsg;
69    tClipHookMsg = record
70     chm_Type   : ULONG;          { zero for this structure format }
71     chm_ChangeCmd,               { command that caused this hook invocation: }
72                                  { either CMD_UPDATE OR CBD_POST }
73     chm_ClipID : Longint;        { the clip identifier of the new data }
74    END;
75 
76 IMPLEMENTATION
77 
78 end.
79