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

  1. DEFINITION MODULE WPFSYS;
  2.  
  3. (***************************************************************************
  4.   OS/2 2.1 Workplace class interface for WPFileSystem
  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 WPOBJECT;
  15. IMPORT OS2DEF;
  16. IMPORT WINSTDCNR;
  17. IMPORT DOSFILEMGR;
  18. IMPORT SYSTEM;
  19.  
  20. TYPE PSOMClass              = SOM.PSOMClass;
  21. TYPE INTEGER4               = SOM.INTEGER4;
  22. TYPE somMToken              = SOM.somMToken;
  23. TYPE somDToken              = SOM.somDToken;
  24. TYPE somMethodProc          = SOM.somMethodProc;
  25. TYPE PWPFileSystem          = POINTER TO WPFileSystem;
  26. TYPE PM_WPFileSystem        = POINTER TO M_WPFileSystem;
  27.  
  28. (************************************************************************
  29.   Additional TYPE- and CONST-declarations supporting WPFileSystem
  30. *************************************************************************)
  31.  
  32. TYPE PSZ                    = OS2DEF.PSZ;
  33. TYPE POBJDATA               = WPOBJECT.POBJDATA;
  34. TYPE CDATE                  = WINSTDCNR.CDATE;
  35. TYPE CTIME                  = WINSTDCNR.CTIME;
  36. TYPE FEA2LIST               = DOSFILEMGR.FEA2LIST;
  37. TYPE HWND                   = OS2DEF.HWND;
  38. TYPE ADDRESS                = SYSTEM.ADDRESS;
  39. TYPE PRINTDEST              = OS2DEF.PRINTDEST;
  40. TYPE PWPObject              = WPOBJECT.PWPObject;
  41. TYPE FDATE                  = DOSFILEMGR.FDATE;
  42. TYPE FTIME                  = DOSFILEMGR.FTIME;
  43. TYPE FILEFINDBUF4           = DOSFILEMGR.FILEFINDBUF4;
  44.  
  45. TYPE (* Structure used to read + write the .CLASSINFO ea *)
  46.   INFOCLASS               = RECORD
  47.     flags                   : LONGCARD;
  48.     pszClass                : PSZ;
  49.     cbObjData               : LONGCARD;
  50.     pObjData                : POBJDATA;
  51.                             END;
  52.   PINFOCLASS              = POINTER TO INFOCLASS;
  53.  
  54. TYPE (* FILEDETAILS structure used for details view *)
  55.   FILEDETAILS             = RECORD
  56.     pszRealName             : PSZ;      (* Real name *)
  57.     ulSize                  : LONGCARD; (* Size of the file *)
  58.     cdateLastMod            : CDATE;    (* Last modification date *)
  59.     ctimeLastMod            : CTIME;    (* Last modification time *)
  60.     cdateLastAccess         : CDATE;    (* Last access date *)
  61.     ctimeLastAccess         : CTIME;    (* Last access time *)
  62.     cdateCreation           : CDATE;    (* Date of creation *)
  63.     ctimeCreation           : CTIME;    (* Time of creation *)
  64.     ulFlags                 : LONGCARD; (* File flags *)
  65.                             END;
  66.   PFILEDETAILS            = POINTER TO FILEDETAILS;
  67.  
  68. CONST
  69.   NUM_FILEDETAILS_FIELDS  = 9;    (* Count of fields in FILEDETAILS *)
  70.  
  71. TYPE (* format of the extended search criteria for this class *)
  72.   FILESYS_SEARCH_INFO     = RECORD
  73.     Exclude                 : CARDINAL;
  74.     MustHave                : CARDINAL;
  75.     fIncludeLMD             : BOOLEAN;
  76.     LMDyear                 : CARDINAL;
  77.     LMDmonth                : CARDINAL;
  78.     LMDday                  : CARDINAL;
  79.     LMDcriteria             : INTEGER;
  80.     fIncludeLMT             : BOOLEAN;
  81.     LMThours                : CARDINAL;
  82.     LMTminutes              : CARDINAL;
  83.     LMTseconds              : CARDINAL;
  84.     LMTcriteria             : INTEGER;
  85.     fIncludeFDS             : BOOLEAN;
  86.     FDSsize                 : LONGCARD;
  87.     FDScriteria             : INTEGER;
  88.     fIncludeFEAS            : BOOLEAN;
  89.     FEASsize                : LONGCARD;
  90.     FEAScriteria            : INTEGER;
  91.     fMustHaveNeedEA         : BOOLEAN;
  92.     fMustNotHaveNeedEA      : BOOLEAN;
  93.                             END;
  94.   PFILESYS_SEARCH_INFO    = POINTER TO FILESYS_SEARCH_INFO;
  95.  
  96. CONST (* return values for wpConfirmRenameFileWithExt *)
  97.   KEEP_RENAMEFILESWITHEXT     = 1;
  98.   DISCARD_RENAMEFILESWITHEXT  = 2;
  99.   CANCEL_RENAMEFILESWITHEXT   = 3;
  100.  
  101.  
  102. (*************************************************************************
  103.   SOM class API for WPFileSystem, including type-bound procedures
  104. **************************************************************************)
  105.  
  106. CONST
  107.   WPFileSystem_MajorVersion     = 1;
  108.   WPFileSystem_MinorVersion     = 2;
  109.  
  110. TYPE
  111.   WPFileSystemClassDataStructure     = RECORD
  112.     classObject                        : PSOMClass;
  113.     wpSetRealName                      : somMToken;
  114.     withdrawn_wpQueryRealName          : somMToken;
  115.     wpSetType                          : somMToken;
  116.     wpQueryType                        : somMToken;
  117.     wpSetAttr                          : somMToken;
  118.     wpQueryAttr                        : somMToken;
  119.     wpQueryFilename                    : somMToken;
  120.     wpAddFile1Page                     : somMToken;
  121.     wpAddFile2Page                     : somMToken;
  122.     wpAddFile3Page                     : somMToken;
  123.     wpAddFileMenuPage                  : somMToken;
  124.     wpQueryCreation                    : somMToken;
  125.     wpQueryLastAccess                  : somMToken;
  126.     wpQueryLastWrite                   : somMToken;
  127.     wpQueryFileSize                    : somMToken;
  128.     wpQueryEASize                      : somMToken;
  129.     wpSetDateInfo                      : somMToken;
  130.     wpSetFileSizeInfo                  : somMToken;
  131.     wpRefresh                          : somMToken;
  132.     wpPrintPlainTextFile               : somMToken;
  133.     wpSetRefreshFlags                  : somMToken;
  134.     wpQueryRefreshFlags                : somMToken;
  135.     wpQueryDriveData                   : somMToken;
  136.     wpSetTitleAndRenameFile            : somMToken;
  137.     wpConfirmRenameFileWithExt         : somMToken;
  138.     wpConfirmKeepAssoc                 : somMToken;
  139.     wpAddUserMenuItem                  : somMToken;
  140.     wpQueryDisk                        : somMToken;
  141.     wpQueryDateInfo                    : somMToken;
  142.     wpSetNewRealName                   : somMToken;
  143.     wpAdoptNewRealName                 : somMToken;
  144.     wpQueryRealName                    : somMToken;
  145.     wpVerifyUpdateAccess               : somMToken;
  146.     wpAddUserItemsToPopupMenu          : somMToken;
  147.                                        END;
  148.  
  149. VAR
  150.   WPFileSystemClassData : WPFileSystemClassDataStructure;
  151.  
  152. TYPE
  153.   (*$SOM+ *)
  154.   WPFileSystem = RECORD( WPOBJECT.WPObject ) END;
  155.   (*$SOM- *)
  156.  
  157.  
  158. PROCEDURE WPFileSystemNewClass
  159. (
  160.   majorVersion  : INTEGER4;
  161.   minorVersion  : INTEGER4
  162. )               : PSOMClass;
  163.  
  164. PROCEDURE( Self : PWPFileSystem ) wpSetRealName
  165. (
  166.   szName        : ARRAY OF CHAR
  167. )               : BOOLEAN;
  168.  
  169. PROCEDURE( Self : PWPFileSystem ) wpSetType
  170. (
  171.   szTypes       : ARRAY OF CHAR;
  172.   VAR feal      : FEA2LIST
  173. )               : BOOLEAN;
  174.  
  175. PROCEDURE( Self : PWPFileSystem ) wpQueryType( ) : PSZ;
  176.  
  177. PROCEDURE( Self : PWPFileSystem ) wpSetAttr
  178. (
  179.   attrFile      : LONGCARD
  180. )               : BOOLEAN;
  181.  
  182. PROCEDURE( Self : PWPFileSystem ) wpQueryAttr( ) : LONGCARD;
  183.  
  184. PROCEDURE( Self : PWPFileSystem ) wpAddFile1Page
  185. (
  186.   hwndNotebook  : HWND
  187. )               : LONGCARD;
  188.  
  189. PROCEDURE( Self : PWPFileSystem ) wpAddFile2Page
  190. (
  191.   hwndNotebook  : HWND
  192. )               : LONGCARD;
  193.  
  194. PROCEDURE( Self : PWPFileSystem ) wpAddFile3Page
  195. (
  196.   hwndNotebook  : HWND
  197. )               : LONGCARD;
  198.  
  199. PROCEDURE( Self : PWPFileSystem ) wpAddFileMenuPage
  200. (
  201.   hwndNotebook  : HWND
  202. )               : LONGCARD;
  203.  
  204. PROCEDURE( Self : PWPFileSystem ) wpQueryCreation
  205. (
  206.   VAR fdate     : FDATE;
  207.   VAR ftime     : FTIME
  208. )               : LONGCARD;
  209.  
  210. PROCEDURE( Self : PWPFileSystem ) wpQueryLastAccess
  211. (
  212.   VAR fdate     : FDATE;
  213.   VAR ftime     : FTIME
  214. )               : LONGCARD;
  215.  
  216. PROCEDURE( Self : PWPFileSystem ) wpQueryLastWrite
  217. (
  218.   VAR fdate     : FDATE;
  219.   VAR ftime     : FTIME
  220. )               : LONGCARD;
  221.  
  222. PROCEDURE( Self : PWPFileSystem ) wpQueryFileSize( ) : LONGCARD;
  223.  
  224. PROCEDURE( Self : PWPFileSystem ) wpQueryEASize( ) : LONGCARD;
  225.  
  226. PROCEDURE( Self : PWPFileSystem ) wpSetDateInfo
  227. (
  228.   VAR FileFindBuf : FILEFINDBUF4
  229. )                 : LONGCARD;
  230.  
  231. PROCEDURE( Self : PWPFileSystem ) wpSetFileSizeInfo
  232. (
  233.   cbFileSize    : LONGCARD;
  234.   cbEASize      : LONGCARD
  235. )               : LONGCARD;
  236.  
  237. PROCEDURE( Self : PWPFileSystem ) wpRefresh
  238. (
  239.   ulView        : LONGCARD;
  240.   pReserved     : ADDRESS
  241. )               : BOOLEAN;
  242.  
  243. PROCEDURE( Self : PWPFileSystem ) wpQueryRefreshFlags( ) : LONGCARD;
  244.  
  245. PROCEDURE( Self : PWPFileSystem ) wpSetRefreshFlags
  246. (
  247.   ulRefreshFlags : LONGCARD
  248. )                : BOOLEAN;
  249.  
  250. PROCEDURE( Self : PWPFileSystem ) wpPrintPlainTextFile
  251. (
  252.   VAR PrintDest : PRINTDEST
  253. )               : BOOLEAN;
  254.  
  255. PROCEDURE( Self : PWPFileSystem ) wpSetTitleAndRenameFile
  256. (
  257.   szNewTitle     : ARRAY OF CHAR;
  258.   fConfirmations : LONGCARD
  259. )                : BOOLEAN;
  260.  
  261. PROCEDURE( Self : PWPFileSystem ) wpConfirmRenameFileWithExt( ) : LONGCARD;
  262.  
  263. PROCEDURE( Self : PWPFileSystem ) wpVerifyUpdateAccess( ) : LONGCARD;
  264.  
  265. PROCEDURE( Self : PWPFileSystem ) wpAddUserItemsToPopupMenu
  266. (
  267.   hwndMenu      : HWND;
  268.   hwndCnr       : HWND;
  269.   iPosition     : LONGCARD
  270. )               : BOOLEAN;
  271.  
  272. PROCEDURE( Self : PWPFileSystem ) wpQueryRealName
  273. (
  274.   VAR szFilename : ARRAY OF CHAR;
  275.   VAR cb         : LONGCARD;
  276.   fQualified     : BOOLEAN
  277. )                : BOOLEAN;
  278.  
  279.  
  280. (*************************************************************************
  281.   SOM class API for M_WPFileSystem, including type-bound procedures
  282. **************************************************************************)
  283.  
  284. CONST
  285.   M_WPFileSystem_MajorVersion   = 1;
  286.   M_WPFileSystem_MinorVersion   = 2;
  287.  
  288. TYPE
  289.   M_WPFileSystemClassDataStructure   = RECORD
  290.     classObject                        : PSOMClass;
  291.     wpclsQueryInstanceType             : somMToken;
  292.     wpclsQueryInstanceFilter           : somMToken;
  293.     wpclsQueryObjectFromPath           : somMToken;
  294.                                        END;
  295.  
  296. VAR
  297.   M_WPFileSystemClassData : M_WPFileSystemClassDataStructure;
  298.  
  299. TYPE
  300.   (*$SOM+ *)
  301.   M_WPFileSystem = RECORD( WPOBJECT.M_WPObject ) END;
  302.   (*$SOM- *)
  303.  
  304.  
  305. PROCEDURE M_WPFileSystemNewClass
  306. (
  307.   majorVersion : INTEGER4;
  308.   minorVersion : INTEGER4
  309. )              : PSOMClass;
  310.  
  311. PROCEDURE( Self : PM_WPFileSystem ) wpclsQueryObjectFromPath
  312. (
  313.   szFQPath      : ARRAY OF CHAR
  314. )               : PWPObject;
  315.  
  316. PROCEDURE( Self : PM_WPFileSystem ) wpclsQueryInstanceType( ) : PSZ;
  317.  
  318. PROCEDURE( Self : PM_WPFileSystem ) wpclsQueryInstanceFilter( ) : PSZ;
  319.  
  320. END WPFSYS.
  321.