home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mod201j.zip / modula2.exe / os2api / wpdataf.def < prev    next >
Text File  |  1994-12-14  |  5KB  |  165 lines

  1. DEFINITION MODULE WPDATAF;
  2.  
  3. (***************************************************************************
  4.   OS/2 2.1 Workplace class interface for WPDataFile
  5.  
  6.   Copyright (c) 1994 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. IMPORT SOM;
  14. IMPORT WPFSYS;
  15. IMPORT OS2DEF;
  16. IMPORT WPOBJECT;
  17.  
  18. TYPE PSOMClass              = SOM.PSOMClass;
  19. TYPE INTEGER4               = SOM.INTEGER4;
  20. TYPE somMToken              = SOM.somMToken;
  21. TYPE somDToken              = SOM.somDToken;
  22. TYPE somMethodProc          = SOM.somMethodProc;
  23. TYPE PWPDataFile            = POINTER TO WPDataFile;
  24. TYPE PM_WPDataFile          = POINTER TO M_WPDataFile;
  25.  
  26. (************************************************************************
  27.   Additional TYPE- and CONST-declarations supporting WPDataFile
  28. *************************************************************************)
  29.  
  30. CONST MAX_ASSOC_ITEMS      = 12;
  31.  
  32. TYPE HWND                  = OS2DEF.HWND;
  33. TYPE PRINTDEST             = OS2DEF.PRINTDEST;
  34. TYPE PWPObject             = WPOBJECT.PWPObject;
  35.  
  36. (* NIL pointer types for various formal types.
  37.  * Even if such a pointer variable p is of value NIL,
  38.  * p^ can be passed by reference to a formal VAR-parameter
  39.  * or a formal open array type. This way a formal parameter
  40.  * might become a NIL-reference which is sometimes needed
  41.  * for OS/2 2.x Workplace procedures.
  42.  * Example:
  43.  *
  44.  *   PROCEDURE( Self : PWPDataFile ) wpQueryAssociatedProgram
  45.  *   (
  46.  *     ...
  47.  *     szDefaultType     : ARRAY OF CHAR   (* might be NULL *)
  48.  *   )                   : PWPObject;
  49.  *     ...
  50.  *   TYPE NILCharArray   = POINTER TO ARRAY [0..0] OF CHAR;
  51.  *   VAR  DataFileObject = PWPDataFile;
  52.  *   VAR  NoCharArray    : NILCharArray;
  53.  *   VAR  ProgramObject  : PWPObject;
  54.  *     ...
  55.  *   NoCharArray := NIL;
  56.  *   ProgramObject := DataFileObject^.wpQueryAssociatedProgram
  57.  *   ( ... , NoCharArray^ );
  58.  *     ...
  59.  *)
  60. TYPE
  61.   NILCharArray   = POINTER TO ARRAY [0..0] OF CHAR;
  62.  
  63.  
  64. (*************************************************************************
  65.   SOM class API for WPDataFile, including type-bound procedures
  66. **************************************************************************)
  67.  
  68. CONST
  69.   WPDataFile_MajorVersion     = 1;
  70.   WPDataFile_MinorVersion     = 2;
  71.  
  72. TYPE
  73.   WPDataFileClassDataStructure     = RECORD
  74.     classObject                      : PSOMClass;
  75.     wpAddFileTypePage                : somMToken;
  76.     wpPrintMetaFile                  : somMToken;
  77.     wpPrintPifFile                   : somMToken;
  78.     wpPrintPrinterSpecificFile       : somMToken;
  79.     wpPrintUnknownFile               : somMToken;
  80.     wpQueryAssociatedProgram         : somMToken;
  81.     wpSetAssociatedFileIcon          : somMToken;
  82.                                      END;
  83.  
  84. VAR
  85.   WPDataFileClassData : WPDataFileClassDataStructure;
  86.  
  87. TYPE
  88.   (*$SOM+ *)
  89.   WPDataFile = RECORD( WPFSYS.WPFileSystem ) END;
  90.   (*$SOM- *)
  91.  
  92.  
  93. PROCEDURE WPDataFileNewClass
  94. (
  95.   majorVersion  : INTEGER4;
  96.   minorVersion  : INTEGER4
  97. )               : PSOMClass;
  98.  
  99. PROCEDURE( Self : PWPDataFile ) wpAddFileTypePage
  100. (
  101.   hwndNotebook  : HWND
  102. )               : LONGCARD;
  103.  
  104. PROCEDURE( Self : PWPDataFile ) wpPrintMetaFile
  105. (
  106.   VAR PrintDest : PRINTDEST
  107. )               : BOOLEAN;
  108.  
  109. PROCEDURE( Self : PWPDataFile ) wpPrintPifFile
  110. (
  111.   VAR PrintDest : PRINTDEST
  112. )               : BOOLEAN;
  113.  
  114. PROCEDURE( Self : PWPDataFile ) wpPrintPrinterSpecificFile
  115. (
  116.   VAR PrintDest : PRINTDEST
  117. )               : BOOLEAN;
  118.  
  119. PROCEDURE( Self : PWPDataFile ) wpPrintUnknownFile
  120. (
  121.   VAR PrintDest : PRINTDEST
  122. )               : BOOLEAN;
  123.  
  124. PROCEDURE( Self : PWPDataFile ) wpQueryAssociatedProgram
  125. (
  126.   ulView            : LONGCARD;
  127.   VAR ulHowMatched  : LONGCARD;
  128.   szMatchString     : ARRAY OF CHAR;
  129.   cbMatchString     : LONGCARD;
  130.   szDefaultType     : ARRAY OF CHAR
  131. )                   : PWPObject;
  132.  
  133. PROCEDURE( Self : PWPDataFile ) wpSetAssociatedFileIcon( );
  134.  
  135.  
  136. (*************************************************************************
  137.   SOM class API for M_WPDataFile, including type-bound procedures
  138. **************************************************************************)
  139.  
  140. CONST
  141.   M_WPDataFile_MajorVersion   = 1;
  142.   M_WPDataFile_MinorVersion   = 2;
  143.  
  144. TYPE
  145.   M_WPDataFileClassDataStructure   = RECORD
  146.     classObject                      : PSOMClass;
  147.                                      END;
  148.  
  149. VAR
  150.   M_WPDataFileClassData : M_WPDataFileClassDataStructure;
  151.  
  152. TYPE
  153.   (*$SOM+ *)
  154.   M_WPDataFile = RECORD( WPFSYS.M_WPFileSystem ) END;
  155.   (*$SOM- *)
  156.  
  157.  
  158. PROCEDURE M_WPDataFileNewClass
  159. (
  160.   majorVersion : INTEGER4;
  161.   minorVersion : INTEGER4
  162. )              : PSOMClass;
  163.  
  164. END WPDATAF.
  165.