home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mod201j.zip / modula2.exe / os2api / winclipb.def < prev    next >
Text File  |  1994-05-03  |  6KB  |  167 lines

  1. DEFINITION MODULE WINCLIPBOARD;
  2.  
  3. (************************************************************************
  4.   OS/2 2.0 interface for Presentation Manager Clipboard manager.
  5.  
  6.   Copyright (c) 1992 by Juergen Neuhoff
  7. *************************************************************************)
  8.  
  9. (*$XL+       Modula-2 language extensions: '_' allowed for symbol names *)
  10. (*$CDECL+    C-style procedures                                         *)
  11. (*$A         default alignment for record fields                        *)
  12.  
  13. FROM   OS2DEF  IMPORT TYPEPREFIX, HAB, HWND, POINTL;
  14.  
  15. CONST (* Clipboard messages *)
  16.   WM_RENDERFMT              = 0060H;
  17.   WM_RENDERALLFMTS          = 0061H;
  18.   WM_DESTROYCLIPBOARD       = 0062H;
  19.   WM_PAINTCLIPBOARD         = 0063H;
  20.   WM_SIZECLIPBOARD          = 0064H;
  21.   WM_HSCROLLCLIPBOARD       = 0065H;
  22.   WM_VSCROLLCLIPBOARD       = 0066H;
  23.   WM_DRAWCLIPBOARD          = 0067H;
  24.  
  25. CONST (* Standard Clipboard formats *)
  26.   CF_TEXT                   = 1;
  27.   CF_BITMAP                 = 2;
  28.   CF_DSPTEXT                = 3;
  29.   CF_DSPBITMAP              = 4;
  30.   CF_METAFILE               = 5;
  31.   CF_DSPMETAFILE            = 6;
  32.   CF_PALETTE                = 9;
  33.  
  34. CONST (* standard DDE and clipboard format stings *)
  35.   SZFMT_TEXT                = "#1";
  36.   SZFMT_BITMAP              = "#2";
  37.   SZFMT_DSPTEXT             = "#3";
  38.   SZFMT_DSPBITMAP           = "#4";
  39.   SZFMT_METAFILE            = "#5";
  40.   SZFMT_DSPMETAFILE         = "#6";
  41.   SZFMT_PALETTE             = "#9";
  42.   SZFMT_SYLK                = "Sylk";
  43.   SZFMT_DIF                 = "Dif";
  44.   SZFMT_TIFF                = "Tiff";
  45.   SZFMT_OEMTEXT             = "OemText";
  46.   SZFMT_DIB                 = "Dib";
  47.   SZFMT_OWNERDISPLAY        = "OwnerDisplay";
  48.   SZFMT_LINK                = "Link";
  49.   SZFMT_METAFILEPICT        = "MetaFilePict";
  50.   SZFMT_DSPMETAFILEPICT     = "DspMetaFilePict";
  51.   SZFMT_CPTEXT              = "Codepage Text";
  52.   SZDDEFMT_RTF              = "Rich Text Format";
  53.   SZDDEFMT_PTRPICT          = "Printer_Picture";
  54.  
  55. TYPE
  56.   (* Metafiles are the same no matter whether they are used in     *)
  57.   (* 16-bit or 32-bit applications. While not strictly necessary   *)
  58.   (* because of inherent alignment we force packing on a 2 byte    *)
  59.   (* boundary to avoid any confusion.                              *)
  60.   (*                                                               *)
  61.   (*$A2 WORD alignment for record fields >= 2 bytes                *)
  62.   MFP             = RECORD      (* mfp *)
  63.     CASE            : TYPEPREFIX OF
  64.     | TRUE          :
  65.       sizeBounds    : POINTL;   (* metafile notional grid size *)
  66.       sizeMM        : POINTL;   (* metafile size high metric units *)
  67.       cbLength      : LONGCARD; (* length of metafile data *)
  68.       mapMode       : CARDINAL; (* a PM metaflie map mode *)
  69.       reserved      : CARDINAL;
  70.       abData        : ARRAY [0..0] OF SHORTCARD; (* metafile Data *)
  71.     | FALSE         :
  72.       BoundsSize    : POINTL;   (* metafile notional grid size *)
  73.       MMSize        : POINTL;   (* metafile size high metric units *)
  74.       Length        : LONGCARD; (* length of metafile data *)
  75.       MapMode       : CARDINAL; (* a PM metaflie map mode *)
  76.       Reserved      : CARDINAL;
  77.       Data          : ARRAY [0..0] OF SHORTCARD; (* metafile Data *)
  78.     END;            END;
  79.   PMFP            = POINTER TO MFP;
  80.  
  81. TYPE
  82.   (* CPTEXT DDE data are the same no matter whether they are used  *)
  83.   (* in 16-bit or 32-bit applications. While not strictly necessary*)
  84.   (* because of inherent alignment we force packing on a 2 byte    *)
  85.   (* boundary to avoid any confusion.                              *)
  86.   (*                                                               *)
  87.   (*$A2 WORD alignment for record fields >= 2 bytes                *)
  88.   CPTEXT          = RECORD   (* cptxt *)
  89.     CASE            : TYPEPREFIX OF
  90.     | TRUE          :
  91.       idCountry     : CARDINAL;
  92.       usCodepage    : CARDINAL;
  93.       usLangID      : CARDINAL;
  94.       usSubLangID   : CARDINAL;
  95.       abText        : ARRAY [0..0] OF CHAR;
  96.     | FALSE         :
  97.       CountryId     : CARDINAL;
  98.       CodePage      : CARDINAL;
  99.       LangID        : CARDINAL;
  100.       SubLangId     : CARDINAL;
  101.       Text          : ARRAY [0..0] OF CHAR;
  102.     END;            END;
  103.   PCPTEXT         = POINTER TO CPTEXT;
  104.   (*$A restore default alignment for record fields *)
  105.  
  106. PROCEDURE WinSetClipbrdOwner
  107. ( AnchorBlockHandle : HAB;
  108.   WinHandle         : HWND
  109. )                   : BOOLEAN;
  110.  
  111. PROCEDURE WinSetClipbrdData
  112. ( AnchorBlockHandle : HAB;
  113.   Handle            : LONGCARD;
  114.   Format            : LONGCARD;
  115.   FmtInfo           : LONGCARD
  116. )                   : BOOLEAN;
  117.  
  118. PROCEDURE WinQueryClipbrdData
  119. ( AnchorBlockHandle : HAB;
  120.   Format            : LONGCARD
  121. )                   : LONGCARD;
  122.  
  123. PROCEDURE WinQueryClipbrdFmtInfo
  124. ( AnchorBlockHandle : HAB;
  125.   Format            : LONGCARD;
  126.   VAR FmtInfo       : LONGCARD
  127. )                   : BOOLEAN;
  128.  
  129. PROCEDURE WinSetClipbrdViewer
  130. ( AnchorBlockHandle : HAB;
  131.   WinHandle         : HWND
  132. )                   : BOOLEAN;
  133.  
  134. CONST (* WinSetClipbrdData() flags *)
  135.   CFI_OWNERFREE     = 0001H;
  136.   CFI_OWNERDISPLAY  = 0002H;
  137.   CFI_POINTER       = 0400H;
  138.   CFI_HANDLE        = 0200H;
  139.  
  140. PROCEDURE WinEnumClipbrdFmts
  141. ( AnchorBlockHandle : HAB;
  142.   PrevFormat        : LONGCARD
  143. )                   : LONGCARD;
  144.  
  145. PROCEDURE WinEmptyClipbrd
  146. ( AnchorBlockHandle : HAB
  147. )                   : BOOLEAN;
  148.  
  149. PROCEDURE WinOpenClipbrd
  150. ( AnchorBlockHandle : HAB
  151. )                   : BOOLEAN;
  152.  
  153. PROCEDURE WinCloseClipbrd
  154. ( AnchorBlockHandle : HAB
  155. )                   : BOOLEAN;
  156.  
  157. PROCEDURE WinQueryClipbrdOwner
  158. ( AnchorBlockHandle : HAB
  159. )                   : HWND;
  160.  
  161. PROCEDURE WinQueryClipbrdViewer
  162. ( AnchorBlockHandle : HAB
  163. )                   : HWND;
  164.  
  165.  
  166. END WINCLIPBOARD.
  167.