
/*
 * This file was generated by the SOM Compiler.
 * FileName: wpfsys.xh.
 * Generated using:
 *     SOM Precompiler spc: 1.22
 *     SOM Emitter emitxh: 1.11
 */

/*
 * 
 *  Module Header
 * 
 *  Module Name: WPFSYS
 * 
 *  OS/2 Presentation Manager Workplace class definitions
 * 
 *  Copyright (c) International Business Machines Corporation 1991, 1992
 * 
 */

#ifndef wpfsys_xh
#define wpfsys_xh
class WPFileSystem;

#define WPFileSystem_MajorVersion 1
#define WPFileSystem_MinorVersion 2

/* C++ som defs */
#include <somcls.xh>

/* C++ parent def */
#ifndef wpobject_xh
#include "wpobject.xh"
#endif

/*
 * Passthru lines: File: "C.xh", "after"
 */
/* Structure used to read + write the .CLASSINFO ea */

      typedef struct _INFOCLASS
      {
         ULONG    flags;
         PSZ      pszClass;
         ULONG    cbObjData;
         POBJDATA pObjData;
      } INFOCLASS;
      typedef INFOCLASS * PINFOCLASS;

      /* FILEDETAILS structure used for details view */

    typedef struct _FILEDETAILS
    {
       PSZ      pszRealName;     /* Real name */
       ULONG    ulSize;          /* Size of the file */
       CDATE    cdateLastMod;    /* Last modification date */
       CTIME    ctimeLastMod;    /* Last modification time */
       CDATE    cdateLastAccess; /* Last access date */
       CTIME    ctimeLastAccess; /* Last access time */
       CDATE    cdateCreation;   /* Date of creation */
       CTIME    ctimeCreation;   /* Time of creation */
       ULONG    ulFlags;         /* File flags */
    }  FILEDETAILS;

    typedef FILEDETAILS * PFILEDETAILS;

    #define NUM_FILEDETAILS_FIELDS    9     /* Count of fields in FILEDETAILS */

      /* format of the extended search criteria for this class */
      typedef struct _FILESYS_SEARCH_INFO {
         USHORT Exclude;
         USHORT MustHave;

         BOOL   fIncludeLMD;
         USHORT LMDyear;
         USHORT LMDmonth;
         USHORT LMDday;
          SHORT LMDcriteria;

         BOOL   fIncludeLMT;
         USHORT LMThours;
         USHORT LMTminutes;
         USHORT LMTseconds;
          SHORT LMTcriteria;

         BOOL   fIncludeFDS;
         ULONG  FDSsize;
         SHORT  FDScriteria;

         BOOL   fIncludeFEAS;
         ULONG  FEASsize;
         SHORT  FEAScriteria;

         BOOL   fMustHaveNeedEA;
         BOOL   fMustNotHaveNeedEA;
         } FILESYS_SEARCH_INFO;
         typedef FILESYS_SEARCH_INFO *PFILESYS_SEARCH_INFO;


      /* Alignment macro: ensure alignment on 4byte boundary */

      #define ALIGN4(p) (PVOID)( ( ((ULONG)p) + 3 ) & 0xFFFFFFFC )

      /* return values for wpConfirmRenameFileWithExt */
      #define KEEP_RENAMEFILESWITHEXT     1
      #define DISCARD_RENAMEFILESWITHEXT  2
      #define CANCEL_RENAMEFILESWITHEXT   3


#ifndef WPFileSystem_API
#define WPFileSystem_API
/*
 * The Class API
 */

/* A procedure to create the WPFileSystem Class */
SOMEXTERN SOMClass * SOMLINK WPFileSystemNewClass(
		integer4 majorVersion,
		integer4 minorVersion);

/* A macro to return the WPFileSystem class object */
class M_WPFileSystem;
#define _WPFileSystem ((M_WPFileSystem*)WPFileSystemClassData.classObject)

/* The static interface to WPFileSystem and its instances */
SOMEXTERN struct WPFileSystemClassDataStructure {
	SOMClass *classObject;
	somMToken wpSetRealName;
	somMToken withdrawn_wpQueryRealName;
	somMToken wpSetType;
	somMToken wpQueryType;
	somMToken wpSetAttr;
	somMToken wpQueryAttr;
	somMToken wpQueryFilename;
	somMToken wpAddFile1Page;
	somMToken wpAddFile2Page;
	somMToken wpAddFile3Page;
	somMToken wpAddFileMenuPage;
	somMToken wpQueryCreation;
	somMToken wpQueryLastAccess;
	somMToken wpQueryLastWrite;
	somMToken wpQueryFileSize;
	somMToken wpQueryEASize;
	somMToken wpSetDateInfo;
	somMToken wpSetFileSizeInfo;
	somMToken wpRefresh;
	somMToken wpPrintPlainTextFile;
	somMToken wpSetRefreshFlags;
	somMToken wpQueryRefreshFlags;
	somMToken wpQueryDriveData;
	somMToken wpSetTitleAndRenameFile;
	somMToken wpConfirmRenameFileWithExt;
	somMToken wpConfirmKeepAssoc;
	somMToken wpAddUserMenuItem;
	somMToken wpQueryDisk;
	somMToken wpQueryDateInfo;
	somMToken wpSetNewRealName;
	somMToken wpAdoptNewRealName;
	somMToken wpQueryRealName;
	somMToken wpVerifyUpdateAccess;
	somMToken wpAddUserItemsToPopupMenu;
} WPFileSystemClassData;

/*
 * -- Typedefs for Procedures that support WPFileSystem Methods
 */
extern "C" {
typedef BOOL    (SOMLINK *somTD_WPFileSystem_wpSetRealName)(WPFileSystem *somSelf,PSZ pszName);
typedef BOOL    (SOMLINK *somTD_WPFileSystem_wpSetType)(WPFileSystem *somSelf,PSZ pszTypes,PFEA2LIST pfeal);
typedef PSZ    (SOMLINK *somTD_WPFileSystem_wpQueryType)(WPFileSystem *somSelf);
typedef BOOL    (SOMLINK *somTD_WPFileSystem_wpSetAttr)(WPFileSystem *somSelf,ULONG attrFile);
typedef ULONG    (SOMLINK *somTD_WPFileSystem_wpQueryAttr)(WPFileSystem *somSelf);
typedef ULONG    (SOMLINK *somTD_WPFileSystem_wpAddFile1Page)(WPFileSystem *somSelf,HWND hwndNotebook);
typedef ULONG    (SOMLINK *somTD_WPFileSystem_wpAddFile2Page)(WPFileSystem *somSelf,HWND hwndNotebook);
typedef ULONG    (SOMLINK *somTD_WPFileSystem_wpAddFile3Page)(WPFileSystem *somSelf,HWND hwndNotebook);
typedef ULONG    (SOMLINK *somTD_WPFileSystem_wpAddFileMenuPage)(WPFileSystem *somSelf,HWND hwndNotebook);
typedef ULONG    (SOMLINK *somTD_WPFileSystem_wpQueryCreation)(WPFileSystem *somSelf,FDATE *fdate,FTIME *ftime);
typedef ULONG    (SOMLINK *somTD_WPFileSystem_wpQueryLastAccess)(WPFileSystem *somSelf,FDATE *fdate,FTIME *ftime);
typedef ULONG    (SOMLINK *somTD_WPFileSystem_wpQueryLastWrite)(WPFileSystem *somSelf,FDATE *fdate,FTIME *ftime);
typedef ULONG    (SOMLINK *somTD_WPFileSystem_wpQueryFileSize)(WPFileSystem *somSelf);
typedef ULONG    (SOMLINK *somTD_WPFileSystem_wpQueryEASize)(WPFileSystem *somSelf);
typedef ULONG    (SOMLINK *somTD_WPFileSystem_wpSetDateInfo)(WPFileSystem *somSelf,FILEFINDBUF4 *pstFileFindBuf);
typedef ULONG    (SOMLINK *somTD_WPFileSystem_wpSetFileSizeInfo)(WPFileSystem *somSelf,ULONG cbFileSize,ULONG cbEASize);
typedef BOOL    (SOMLINK *somTD_WPFileSystem_wpRefresh)(WPFileSystem *somSelf,ULONG ulView,PVOID pReserved);
typedef ULONG    (SOMLINK *somTD_WPFileSystem_wpQueryRefreshFlags)(WPFileSystem *somSelf);
typedef BOOL    (SOMLINK *somTD_WPFileSystem_wpSetRefreshFlags)(WPFileSystem *somSelf,ULONG ulRefreshFlags);
typedef BOOL    (SOMLINK *somTD_WPFileSystem_wpPrintPlainTextFile)(WPFileSystem *somSelf,PPRINTDEST pPrintDest);
typedef BOOL    (SOMLINK *somTD_WPFileSystem_wpSetTitleAndRenameFile)(WPFileSystem *somSelf,PSZ pszNewTitle,ULONG fConfirmations);
typedef ULONG    (SOMLINK *somTD_WPFileSystem_wpConfirmRenameFileWithExt)(WPFileSystem *somSelf);
typedef ULONG    (SOMLINK *somTD_WPFileSystem_wpVerifyUpdateAccess)(WPFileSystem *somSelf);
typedef BOOL    (SOMLINK *somTD_WPFileSystem_wpAddUserItemsToPopupMenu)(WPFileSystem *somSelf,HWND hwndMenu,HWND hwndCnr,ULONG iPosition);
typedef BOOL    (SOMLINK *somTD_WPFileSystem_wpQueryRealName)(WPFileSystem *somSelf,PSZ pszFilename,PULONG pcb,BOOL fQualified);
}


#endif /* WPFileSystem_API */


/*
 * -- The C++ Wrapper Class for WPFileSystem
 */
class WPFileSystem : public WPObject
{
public:

void *operator new(size_t size)
{
   (void) size;
   if (!WPFileSystemClassData.classObject) 
      WPFileSystemNewClass(WPFileSystem_MajorVersion,WPFileSystem_MinorVersion);
   return (void *)
      ((somTD_SOMClass_somNew)
      somResolve(SOM_TestCls((SOMAny *)(WPFileSystemClassData.classObject),
                             SOMClassClassData.classObject),
                 SOMClassClassData.somNew))
         ((SOMClass*)(WPFileSystemClassData.classObject));
}

void operator delete(void * obj)
{
   ((SOMObject *)obj)->somFree();
}

/* public method: wpSetRealName */
BOOL    wpSetRealName(PSZ pszName)
{
   return (BOOL) SOM_Resolve((SOMAny *)this,WPFileSystem,wpSetRealName)
	(this,pszName);
}


/* public method: wpSetType */
BOOL    wpSetType(PSZ pszTypes,
		PFEA2LIST pfeal)
{
   return (BOOL) SOM_Resolve((SOMAny *)this,WPFileSystem,wpSetType)
	(this,pszTypes,pfeal);
}


/* public method: wpQueryType */
PSZ    wpQueryType()
{
   return (PSZ) SOM_Resolve((SOMAny *)this,WPFileSystem,wpQueryType)
	(this);
}


/* public method: wpSetAttr */
BOOL    wpSetAttr(ULONG attrFile)
{
   return (BOOL) SOM_Resolve((SOMAny *)this,WPFileSystem,wpSetAttr)
	(this,attrFile);
}


/* public method: wpQueryAttr */
ULONG    wpQueryAttr()
{
   return (ULONG) SOM_Resolve((SOMAny *)this,WPFileSystem,wpQueryAttr)
	(this);
}


/* public method: wpAddFile1Page */
ULONG    wpAddFile1Page(HWND hwndNotebook)
{
   return (ULONG) SOM_Resolve((SOMAny *)this,WPFileSystem,wpAddFile1Page)
	(this,hwndNotebook);
}


/* public method: wpAddFile2Page */
ULONG    wpAddFile2Page(HWND hwndNotebook)
{
   return (ULONG) SOM_Resolve((SOMAny *)this,WPFileSystem,wpAddFile2Page)
	(this,hwndNotebook);
}


/* public method: wpAddFile3Page */
ULONG    wpAddFile3Page(HWND hwndNotebook)
{
   return (ULONG) SOM_Resolve((SOMAny *)this,WPFileSystem,wpAddFile3Page)
	(this,hwndNotebook);
}


/* public method: wpAddFileMenuPage */
ULONG    wpAddFileMenuPage(HWND hwndNotebook)
{
   return (ULONG) SOM_Resolve((SOMAny *)this,WPFileSystem,wpAddFileMenuPage)
	(this,hwndNotebook);
}


/* public method: wpQueryCreation */
ULONG    wpQueryCreation(FDATE *fdate,
		FTIME *ftime)
{
   return (ULONG) SOM_Resolve((SOMAny *)this,WPFileSystem,wpQueryCreation)
	(this,fdate,ftime);
}


/* public method: wpQueryLastAccess */
ULONG    wpQueryLastAccess(FDATE *fdate,
		FTIME *ftime)
{
   return (ULONG) SOM_Resolve((SOMAny *)this,WPFileSystem,wpQueryLastAccess)
	(this,fdate,ftime);
}


/* public method: wpQueryLastWrite */
ULONG    wpQueryLastWrite(FDATE *fdate,
		FTIME *ftime)
{
   return (ULONG) SOM_Resolve((SOMAny *)this,WPFileSystem,wpQueryLastWrite)
	(this,fdate,ftime);
}


/* public method: wpQueryFileSize */
ULONG    wpQueryFileSize()
{
   return (ULONG) SOM_Resolve((SOMAny *)this,WPFileSystem,wpQueryFileSize)
	(this);
}


/* public method: wpQueryEASize */
ULONG    wpQueryEASize()
{
   return (ULONG) SOM_Resolve((SOMAny *)this,WPFileSystem,wpQueryEASize)
	(this);
}


/* public method: wpSetDateInfo */
ULONG    wpSetDateInfo(FILEFINDBUF4 *pstFileFindBuf)
{
   return (ULONG) SOM_Resolve((SOMAny *)this,WPFileSystem,wpSetDateInfo)
	(this,pstFileFindBuf);
}


/* public method: wpSetFileSizeInfo */
ULONG    wpSetFileSizeInfo(ULONG cbFileSize,
		ULONG cbEASize)
{
   return (ULONG) SOM_Resolve((SOMAny *)this,WPFileSystem,wpSetFileSizeInfo)
	(this,cbFileSize,cbEASize);
}


/* public method: wpRefresh */
BOOL    wpRefresh(ULONG ulView,
		PVOID pReserved)
{
   return (BOOL) SOM_Resolve((SOMAny *)this,WPFileSystem,wpRefresh)
	(this,ulView,pReserved);
}


/* public method: wpQueryRefreshFlags */
ULONG    wpQueryRefreshFlags()
{
   return (ULONG) SOM_Resolve((SOMAny *)this,WPFileSystem,wpQueryRefreshFlags)
	(this);
}


/* public method: wpSetRefreshFlags */
BOOL    wpSetRefreshFlags(ULONG ulRefreshFlags)
{
   return (BOOL) SOM_Resolve((SOMAny *)this,WPFileSystem,wpSetRefreshFlags)
	(this,ulRefreshFlags);
}


/* public method: wpPrintPlainTextFile */
BOOL    wpPrintPlainTextFile(PPRINTDEST pPrintDest)
{
   return (BOOL) SOM_Resolve((SOMAny *)this,WPFileSystem,wpPrintPlainTextFile)
	(this,pPrintDest);
}


/* public method: wpSetTitleAndRenameFile */
BOOL    wpSetTitleAndRenameFile(PSZ pszNewTitle,
		ULONG fConfirmations)
{
   return (BOOL) SOM_Resolve((SOMAny *)this,WPFileSystem,wpSetTitleAndRenameFile)
	(this,pszNewTitle,fConfirmations);
}


/* public method: wpConfirmRenameFileWithExt */
ULONG    wpConfirmRenameFileWithExt()
{
   return (ULONG) SOM_Resolve((SOMAny *)this,WPFileSystem,wpConfirmRenameFileWithExt)
	(this);
}


/* public method: wpVerifyUpdateAccess */
ULONG    wpVerifyUpdateAccess()
{
   return (ULONG) SOM_Resolve((SOMAny *)this,WPFileSystem,wpVerifyUpdateAccess)
	(this);
}


/* public method: wpAddUserItemsToPopupMenu */
BOOL    wpAddUserItemsToPopupMenu(HWND hwndMenu,
		HWND hwndCnr,
		ULONG iPosition)
{
   return (BOOL) SOM_Resolve((SOMAny *)this,WPFileSystem,wpAddUserItemsToPopupMenu)
	(this,hwndMenu,hwndCnr,iPosition);
}


/* public method: wpQueryRealName */
BOOL    wpQueryRealName(PSZ pszFilename,
		PULONG pcb,
		BOOL fQualified)
{
   return (BOOL) SOM_Resolve((SOMAny *)this,WPFileSystem,wpQueryRealName)
	(this,pszFilename,pcb,fQualified);
}



};   /* WPFileSystem */



#endif       /* wpfsys_xh */

/*
 * This file was generated by the SOM Compiler.
 * FileName: wpfsys.xh.
 * Generated using:
 *     SOM Precompiler spc: 1.22
 *     SOM Emitter emitxh: 1.11
 */
#ifndef wpfsys_mxh
#define wpfsys_mxh
class M_WPFileSystem;

#define M_WPFileSystem_MajorVersion 1
#define M_WPFileSystem_MinorVersion 2

/* C++ som defs */
#include <somcls.xh>

/* C++ parent def */
#ifndef wpobject_xh
#include "wpobject.xh"
#endif

#ifndef M_WPFileSystem_API
#define M_WPFileSystem_API
/*
 * The Class API
 */

/* A procedure to create the M_WPFileSystem Class */
SOMEXTERN SOMClass * SOMLINK M_WPFileSystemNewClass(
		integer4 majorVersion,
		integer4 minorVersion);

/* A macro to return the M_WPFileSystem class object */
#define _M_WPFileSystem ((SOMClass*)M_WPFileSystemClassData.classObject)

/* The static interface to M_WPFileSystem and its instances */
SOMEXTERN struct M_WPFileSystemClassDataStructure {
	SOMClass *classObject;
	somMToken wpclsQueryInstanceType;
	somMToken wpclsQueryInstanceFilter;
	somMToken wpclsQueryObjectFromPath;
} M_WPFileSystemClassData;

/*
 * -- Typedefs for Procedures that support M_WPFileSystem Methods
 */
extern "C" {
typedef WPObject *   (SOMLINK *somTD_M_WPFileSystem_wpclsQueryObjectFromPath)(M_WPFileSystem *somSelf,PSZ pszFQPath);
typedef PSZ    (SOMLINK *somTD_M_WPFileSystem_wpclsQueryInstanceType)(M_WPFileSystem *somSelf);
typedef PSZ    (SOMLINK *somTD_M_WPFileSystem_wpclsQueryInstanceFilter)(M_WPFileSystem *somSelf);
}


#endif /* M_WPFileSystem_API */


/*
 * -- The C++ Wrapper Class for M_WPFileSystem
 */
class M_WPFileSystem : public M_WPObject
{
public:

void *operator new(size_t size)
{
   (void) size;
   if (!M_WPFileSystemClassData.classObject) 
      M_WPFileSystemNewClass(M_WPFileSystem_MajorVersion,M_WPFileSystem_MinorVersion);
   return (void *)
      ((somTD_SOMClass_somNew)
      somResolve(SOM_TestCls((SOMAny *)(M_WPFileSystemClassData.classObject),
                             SOMClassClassData.classObject),
                 SOMClassClassData.somNew))
         ((SOMClass*)(M_WPFileSystemClassData.classObject));
}

void operator delete(void * obj)
{
   ((SOMObject *)obj)->somFree();
}

/* public method: wpclsQueryObjectFromPath */
WPObject *   wpclsQueryObjectFromPath(PSZ pszFQPath)
{
   return (WPObject*) SOM_Resolve((SOMAny *)this,M_WPFileSystem,wpclsQueryObjectFromPath)
	(this,pszFQPath);
}


/* public method: wpclsQueryInstanceType */
PSZ    wpclsQueryInstanceType()
{
   return (PSZ) SOM_Resolve((SOMAny *)this,M_WPFileSystem,wpclsQueryInstanceType)
	(this);
}


/* public method: wpclsQueryInstanceFilter */
PSZ    wpclsQueryInstanceFilter()
{
   return (PSZ) SOM_Resolve((SOMAny *)this,M_WPFileSystem,wpclsQueryInstanceFilter)
	(this);
}



};   /* M_WPFileSystem */



#endif       /* wpfsys_mxh */
