
/*
 * This file was generated by the SOM Compiler.
 * FileName: G:\cwpsh\rel\os2c\include\base\os2\wpfsys.xh.
 * Generated using:
 *     SOM Precompiler somipc: 2.29.1.14
 *     SOM Emitter emitxh: 2.43
 */

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


#ifndef SOM_WPFileSystem_xh
#define SOM_WPFileSystem_xh

class WPFileSystem;

#define WPFileSystem_MajorVersion 1
#define WPFileSystem_MinorVersion 2

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

/* C++ parent defs */
#ifndef SOM_WPObject_xh
#include <wpobject.xh>
#endif

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

/*
 * Start of bindings for IDL types
 */

class SOMClass;
class SOMObject;
class WPFolder;
class M_WPObject;
class WPObject;
class WPImageFile;
class M_WPFileSystem;

/*
 * End of bindings for IDL types.
 */

/*
 * Passthru lines: File: "C.h", "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 */
       PSZ      pszSize;         /* Asciiz 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 */
       PSZ      ReadOnly;
       PSZ      Hidden;
       PSZ      System;
       PSZ      Directory;
       PSZ      Archived;
       PSZ      Subject;
       PSZ      Comments;
       PSZ      KeyPhrases;
       PSZ      History;
       ULONG    ExtAttr;
    }  FILEDETAILS;

    typedef FILEDETAILS * PFILEDETAILS;

    #define NUM_FILEDETAILS_FIELDS    19     /* 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




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

/* The API to the WPFileSystem class object, and the methods it introduces. */
SOMEXTERN struct WPFileSystemClassDataStructure {
	M_WPFileSystem *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 wpFilesystemPrivate1;
	somMToken wpSetTitleAndRenameFile;
	somMToken wpConfirmRenameFileWithExt;
	somMToken wpConfirmKeepAssoc;
	somMToken wpFilesystemPrivate2;
	somMToken wpQueryDisk;
	somMToken wpQueryDateInfo;
	somMToken wpFileSystemPrivate3;
	somMToken wpFileSystemPrivate4;
	somMToken wpQueryRealName;
	somMToken wpVerifyUpdateAccess;
	somMToken wpAddUserItemsToPopupMenu;
	somMToken wpFilesystemPrivate5;
	somMToken wpIsDiskSwapped;
	somMToken wpFilesystemPrivate6;
	somMToken wpQueryEASupport;
	somMToken wpFilesystemPrivate7;
	somMToken wpFilesystemPrivate8;
	somMToken wpFilesystemPrivate9;
	somMToken wpQueryFileSizeL;
	somMToken wpSetFileSizeL;
} SOMDLINK WPFileSystemClassData;
#define _WPFileSystem WPFileSystemClassData.classObject

/* The API to parentMtabs for WPFileSystem, and the instance data it introduces. */
SOMEXTERN struct WPFileSystemCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken              instanceDataToken;
} SOMDLINK WPFileSystemCClassData;

/*
 * -- Typedefs for WPFileSystem Method Procedures
 */
SOMEXTERN {
typedef BOOL   SOMLINK somTP_WPFileSystem_wpSetRealName(WPFileSystem *somSelf, 
		PSZ pszName);
typedef somTP_WPFileSystem_wpSetRealName *somTD_WPFileSystem_wpSetRealName;
typedef BOOL   SOMLINK somTP_WPFileSystem_wpSetType(WPFileSystem *somSelf, 
		PSZ pszTypes, 
		PFEA2LIST pfeal);
typedef somTP_WPFileSystem_wpSetType *somTD_WPFileSystem_wpSetType;
typedef PSZ   SOMLINK somTP_WPFileSystem_wpQueryType(WPFileSystem *somSelf);
typedef somTP_WPFileSystem_wpQueryType *somTD_WPFileSystem_wpQueryType;
typedef BOOL   SOMLINK somTP_WPFileSystem_wpSetAttr(WPFileSystem *somSelf, 
		ULONG attrFile);
typedef somTP_WPFileSystem_wpSetAttr *somTD_WPFileSystem_wpSetAttr;
typedef ULONG   SOMLINK somTP_WPFileSystem_wpQueryAttr(WPFileSystem *somSelf);
typedef somTP_WPFileSystem_wpQueryAttr *somTD_WPFileSystem_wpQueryAttr;
typedef ULONG   SOMLINK somTP_WPFileSystem_wpAddFile1Page(WPFileSystem *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPFileSystem_wpAddFile1Page *somTD_WPFileSystem_wpAddFile1Page;
typedef ULONG   SOMLINK somTP_WPFileSystem_wpAddFile2Page(WPFileSystem *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPFileSystem_wpAddFile2Page *somTD_WPFileSystem_wpAddFile2Page;
typedef ULONG   SOMLINK somTP_WPFileSystem_wpAddFile3Page(WPFileSystem *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPFileSystem_wpAddFile3Page *somTD_WPFileSystem_wpAddFile3Page;
typedef ULONG   SOMLINK somTP_WPFileSystem_wpAddFileMenuPage(WPFileSystem *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPFileSystem_wpAddFileMenuPage *somTD_WPFileSystem_wpAddFileMenuPage;
typedef ULONG   SOMLINK somTP_WPFileSystem_wpQueryCreation(WPFileSystem *somSelf, 
		FDATE* fdate, 
		FTIME* ftime);
typedef somTP_WPFileSystem_wpQueryCreation *somTD_WPFileSystem_wpQueryCreation;
typedef ULONG   SOMLINK somTP_WPFileSystem_wpQueryLastAccess(WPFileSystem *somSelf, 
		FDATE* fdate, 
		FTIME* ftime);
typedef somTP_WPFileSystem_wpQueryLastAccess *somTD_WPFileSystem_wpQueryLastAccess;
typedef ULONG   SOMLINK somTP_WPFileSystem_wpQueryLastWrite(WPFileSystem *somSelf, 
		FDATE* fdate, 
		FTIME* ftime);
typedef somTP_WPFileSystem_wpQueryLastWrite *somTD_WPFileSystem_wpQueryLastWrite;
typedef ULONG   SOMLINK somTP_WPFileSystem_wpQueryFileSize(WPFileSystem *somSelf);
typedef somTP_WPFileSystem_wpQueryFileSize *somTD_WPFileSystem_wpQueryFileSize;
typedef ULONG   SOMLINK somTP_WPFileSystem_wpQueryEASize(WPFileSystem *somSelf);
typedef somTP_WPFileSystem_wpQueryEASize *somTD_WPFileSystem_wpQueryEASize;
typedef ULONG   SOMLINK somTP_WPFileSystem_wpSetDateInfo(WPFileSystem *somSelf, 
		FILEFINDBUF4* pstFileFindBuf);
typedef somTP_WPFileSystem_wpSetDateInfo *somTD_WPFileSystem_wpSetDateInfo;
typedef ULONG   SOMLINK somTP_WPFileSystem_wpSetFileSizeInfo(WPFileSystem *somSelf, 
		ULONG cbFileSize, 
		ULONG cbEASize);
typedef somTP_WPFileSystem_wpSetFileSizeInfo *somTD_WPFileSystem_wpSetFileSizeInfo;
typedef BOOL   SOMLINK somTP_WPFileSystem_wpRefresh(WPFileSystem *somSelf, 
		ULONG ulView, 
		PVOID pReserved);
typedef somTP_WPFileSystem_wpRefresh *somTD_WPFileSystem_wpRefresh;
typedef ULONG   SOMLINK somTP_WPFileSystem_wpQueryRefreshFlags(WPFileSystem *somSelf);
typedef somTP_WPFileSystem_wpQueryRefreshFlags *somTD_WPFileSystem_wpQueryRefreshFlags;
typedef BOOL   SOMLINK somTP_WPFileSystem_wpSetRefreshFlags(WPFileSystem *somSelf, 
		ULONG ulRefreshFlags);
typedef somTP_WPFileSystem_wpSetRefreshFlags *somTD_WPFileSystem_wpSetRefreshFlags;
typedef BOOL   SOMLINK somTP_WPFileSystem_wpPrintPlainTextFile(WPFileSystem *somSelf, 
		PPRINTDEST pPrintDest);
typedef somTP_WPFileSystem_wpPrintPlainTextFile *somTD_WPFileSystem_wpPrintPlainTextFile;
typedef BOOL   SOMLINK somTP_WPFileSystem_wpSetTitleAndRenameFile(WPFileSystem *somSelf, 
		PSZ pszNewTitle, 
		ULONG fConfirmations);
typedef somTP_WPFileSystem_wpSetTitleAndRenameFile *somTD_WPFileSystem_wpSetTitleAndRenameFile;
typedef ULONG   SOMLINK somTP_WPFileSystem_wpConfirmRenameFileWithExt(WPFileSystem *somSelf);
typedef somTP_WPFileSystem_wpConfirmRenameFileWithExt *somTD_WPFileSystem_wpConfirmRenameFileWithExt;
typedef ULONG   SOMLINK somTP_WPFileSystem_wpVerifyUpdateAccess(WPFileSystem *somSelf);
typedef somTP_WPFileSystem_wpVerifyUpdateAccess *somTD_WPFileSystem_wpVerifyUpdateAccess;
typedef ULONG   SOMLINK somTP_WPFileSystem_wpQueryEASupport(WPFileSystem *somSelf);
typedef somTP_WPFileSystem_wpQueryEASupport *somTD_WPFileSystem_wpQueryEASupport;
typedef BOOL   SOMLINK somTP_WPFileSystem_wpAddUserItemsToPopupMenu(WPFileSystem *somSelf, 
		HWND hwndMenu, 
		HWND hwndCnr, 
		ULONG iPosition);
typedef somTP_WPFileSystem_wpAddUserItemsToPopupMenu *somTD_WPFileSystem_wpAddUserItemsToPopupMenu;
typedef BOOL   SOMLINK somTP_WPFileSystem_wpIsDiskSwapped(WPFileSystem *somSelf);
typedef somTP_WPFileSystem_wpIsDiskSwapped *somTD_WPFileSystem_wpIsDiskSwapped;
typedef BOOL   SOMLINK somTP_WPFileSystem_wpQueryRealName(WPFileSystem *somSelf, 
		PSZ pszFilename, 
		PULONG pcb, 
		BOOL fQualified);
typedef somTP_WPFileSystem_wpQueryRealName *somTD_WPFileSystem_wpQueryRealName;
typedef PSZ   SOMLINK somTP_WPFileSystem_wpQueryFilename(WPFileSystem *somSelf, 
		PSZ pszFilename, 
		BOOL fQualified);
typedef somTP_WPFileSystem_wpQueryFilename *somTD_WPFileSystem_wpQueryFilename;
typedef WPFileSystem*   SOMLINK somTP_WPFileSystem_wpQueryDisk(WPFileSystem *somSelf);
typedef somTP_WPFileSystem_wpQueryDisk *somTD_WPFileSystem_wpQueryDisk;
typedef ULONG   SOMLINK somTP_WPFileSystem_wpQueryDateInfo(WPFileSystem *somSelf, 
		FILEFINDBUF4* pstFileFindBuf);
typedef somTP_WPFileSystem_wpQueryDateInfo *somTD_WPFileSystem_wpQueryDateInfo;
typedef ULONG   SOMLINK somTP_WPFileSystem_wpConfirmKeepAssoc(WPFileSystem *somSelf);
typedef somTP_WPFileSystem_wpConfirmKeepAssoc *somTD_WPFileSystem_wpConfirmKeepAssoc;
typedef void   SOMLINK somTP_WPFileSystem_wpQueryFileSizeL(WPFileSystem *somSelf, 
		PLONGLONG pllFileSize);
typedef somTP_WPFileSystem_wpQueryFileSizeL *somTD_WPFileSystem_wpQueryFileSizeL;
typedef ULONG   SOMLINK somTP_WPFileSystem_wpSetFileSizeL(WPFileSystem *somSelf, 
		PLONGLONG pllFileSize);
typedef somTP_WPFileSystem_wpSetFileSizeL *somTD_WPFileSystem_wpSetFileSizeL;

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef M_WPFileSystem*   SOMLINK somTP_WPFileSystem_somGetClass(WPFileSystem *somSelf);
typedef somTP_WPFileSystem_somGetClass *somTD_WPFileSystem_somGetClass;
}

#endif /* WPFileSystem_API */


/*
 * -- This emitter treats Method Tokens as Thunks by default.
 * -- Use the sc modifier "nothunks" to change this default
 */
#undef somresolve_
#define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))

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

// WPFileSystem::new creates the class object if necessary, and then uses somNewNoInit
// to allocate memory and create the object. Initialization is in ctors.
void *operator new(size_t)
{
   if (!_WPFileSystem) WPFileSystemNewClass(WPFileSystem_MajorVersion,WPFileSystem_MinorVersion);
   return (void*)
      SOM_Resolve(_WPFileSystem,SOMClass,somNewNoInit)
         ((SOMClass *)((void*)_WPFileSystem));
}

// WPFileSystem::delete uses somDestruct.
void operator delete(void * obj)
{
   if (obj && *(void**)obj) {
      SOM_Resolve(obj,SOMObject,somDestruct)
         ((SOMObject*)obj, 1, 0);
   }
}

WPFileSystem& operator=(WPFileSystem& fromObj)
{
   this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
   return *this;
}

WPFileSystem()
{
   if (*(void**)this != 
       ((somParentMtabStructPtr)
        (WPFileSystemCClassData.parentMtab))->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultInit(0);
}

WPFileSystem(WPFileSystem* fromObj)
{
   if (*(void**)this != 
       ((somParentMtabStructPtr)
        (WPFileSystemCClassData.parentMtab))->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
}

WPFileSystem(const WPFileSystem* fromObj)
{
   if (*(void**)this != 
       ((somParentMtabStructPtr)
        (WPFileSystemCClassData.parentMtab))->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
}


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


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


/* method: wpQueryType */
PSZ   wpQueryType()
{
   return SOM_ResolveD(this,WPFileSystem,WPFileSystem,wpQueryType)
	(this);
}


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


/* method: wpQueryAttr */
ULONG   wpQueryAttr()
{
   return SOM_ResolveD(this,WPFileSystem,WPFileSystem,wpQueryAttr)
	(this);
}


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


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


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


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


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


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


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


/* method: wpQueryFileSize */
ULONG   wpQueryFileSize()
{
   return SOM_ResolveD(this,WPFileSystem,WPFileSystem,wpQueryFileSize)
	(this);
}


/* method: wpQueryEASize */
ULONG   wpQueryEASize()
{
   return SOM_ResolveD(this,WPFileSystem,WPFileSystem,wpQueryEASize)
	(this);
}


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


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


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


/* method: wpQueryRefreshFlags */
ULONG   wpQueryRefreshFlags()
{
   return SOM_ResolveD(this,WPFileSystem,WPFileSystem,wpQueryRefreshFlags)
	(this);
}


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


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


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


/* method: wpConfirmRenameFileWithExt */
ULONG   wpConfirmRenameFileWithExt()
{
   return SOM_ResolveD(this,WPFileSystem,WPFileSystem,wpConfirmRenameFileWithExt)
	(this);
}


/* method: wpVerifyUpdateAccess */
ULONG   wpVerifyUpdateAccess()
{
   return SOM_ResolveD(this,WPFileSystem,WPFileSystem,wpVerifyUpdateAccess)
	(this);
}


/* method: wpQueryEASupport */
ULONG   wpQueryEASupport()
{
   return SOM_ResolveD(this,WPFileSystem,WPFileSystem,wpQueryEASupport)
	(this);
}


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


/* method: wpIsDiskSwapped */
BOOL   wpIsDiskSwapped()
{
   return SOM_ResolveD(this,WPFileSystem,WPFileSystem,wpIsDiskSwapped)
	(this);
}


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


/* method: wpQueryFilename */
PSZ   wpQueryFilename(PSZ pszFilename, 
		BOOL fQualified)
{
   return SOM_ResolveD(this,WPFileSystem,WPFileSystem,wpQueryFilename)
	(this,pszFilename,fQualified);
}


/* method: wpQueryDisk */
WPFileSystem*   wpQueryDisk()
{
   return SOM_ResolveD(this,WPFileSystem,WPFileSystem,wpQueryDisk)
	(this);
}


/* method: wpQueryDateInfo */
ULONG   wpQueryDateInfo(FILEFINDBUF4* pstFileFindBuf)
{
   return SOM_ResolveD(this,WPFileSystem,WPFileSystem,wpQueryDateInfo)
	(this,pstFileFindBuf);
}


/* method: wpConfirmKeepAssoc */
ULONG   wpConfirmKeepAssoc()
{
   return SOM_ResolveD(this,WPFileSystem,WPFileSystem,wpConfirmKeepAssoc)
	(this);
}


/* method: wpQueryFileSizeL */
void   wpQueryFileSizeL(PLONGLONG pllFileSize)
{
   SOM_ResolveD(this,WPFileSystem,WPFileSystem,wpQueryFileSizeL)
	(this,pllFileSize);
}


/* method: wpSetFileSizeL */
ULONG   wpSetFileSizeL(PLONGLONG pllFileSize)
{
   return SOM_ResolveD(this,WPFileSystem,WPFileSystem,wpSetFileSizeL)
	(this,pllFileSize);
}


/*
 * Reintroduce inherited methods
 */

/* method: somGetClass */
M_WPFileSystem*  somGetClass()
{
/*
 *  Return the receiver's class.
 */
   return SOM_ResolveD(this,WPFileSystem,SOMObject,somGetClass)
	(this);
}



};   /* WPFileSystem */



#endif       /* SOM_WPFileSystem_xh */

#ifndef SOM_M_WPFileSystem_xh
#define SOM_M_WPFileSystem_xh

class M_WPFileSystem;

#define M_WPFileSystem_MajorVersion 1
#define M_WPFileSystem_MinorVersion 2

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

/* C++ parent defs */
#ifndef SOM_M_WPObject_xh
#include <wpobject.xh>
#endif

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

/*
 * Start of bindings for IDL types
 */


/*
 * End of bindings for IDL types.
 */

/*
 * -- M_WPFileSystem is a metaclass for WPFileSystem. Make sure WPFileSystem is known.
 */
class WPFileSystem;


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

/* The API to the M_WPFileSystem class object, and the methods it introduces. */
SOMEXTERN struct M_WPFileSystemClassDataStructure {
	SOMClass *classObject;
	somMToken wpclsQueryInstanceType;
	somMToken wpclsQueryInstanceFilter;
	somMToken wpclsQueryObjectFromPath;
	somMToken wpclsQueryAwakeObject;
	somMToken wpclsFileSysExists;
	somMToken wpclsQueryInstanceClass;
} SOMDLINK M_WPFileSystemClassData;
#define _M_WPFileSystem M_WPFileSystemClassData.classObject

/* The API to parentMtabs for M_WPFileSystem, and the instance data it introduces. */
SOMEXTERN struct M_WPFileSystemCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken              instanceDataToken;
} SOMDLINK M_WPFileSystemCClassData;

/*
 * -- Typedefs for M_WPFileSystem Method Procedures
 */
SOMEXTERN {
typedef WPObject*   SOMLINK somTP_M_WPFileSystem_wpclsQueryAwakeObject(M_WPFileSystem *somSelf, 
		PSZ pszInputPath);
typedef somTP_M_WPFileSystem_wpclsQueryAwakeObject *somTD_M_WPFileSystem_wpclsQueryAwakeObject;
typedef WPObject*   SOMLINK somTP_M_WPFileSystem_wpclsFileSysExists(M_WPFileSystem *somSelf, 
		WPFolder* Folder, 
		PSZ pszFilename, 
		ULONG attrFile);
typedef somTP_M_WPFileSystem_wpclsFileSysExists *somTD_M_WPFileSystem_wpclsFileSysExists;
typedef WPObject*   SOMLINK somTP_M_WPFileSystem_wpclsQueryObjectFromPath(M_WPFileSystem *somSelf, 
		PSZ pszFQPath);
typedef somTP_M_WPFileSystem_wpclsQueryObjectFromPath *somTD_M_WPFileSystem_wpclsQueryObjectFromPath;
typedef PSZ   SOMLINK somTP_M_WPFileSystem_wpclsQueryInstanceType(M_WPFileSystem *somSelf);
typedef somTP_M_WPFileSystem_wpclsQueryInstanceType *somTD_M_WPFileSystem_wpclsQueryInstanceType;
typedef PSZ   SOMLINK somTP_M_WPFileSystem_wpclsQueryInstanceFilter(M_WPFileSystem *somSelf);
typedef somTP_M_WPFileSystem_wpclsQueryInstanceFilter *somTD_M_WPFileSystem_wpclsQueryInstanceFilter;
typedef PSZ   SOMLINK somTP_M_WPFileSystem_wpclsQueryInstanceClass(M_WPFileSystem *somSelf);
typedef somTP_M_WPFileSystem_wpclsQueryInstanceClass *somTD_M_WPFileSystem_wpclsQueryInstanceClass;

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef WPFileSystem*   SOMLINK somTP_M_WPFileSystem_somNew(M_WPFileSystem *somSelf);
typedef somTP_M_WPFileSystem_somNew *somTD_M_WPFileSystem_somNew;
}

#endif /* M_WPFileSystem_API */


/*
 * -- This emitter treats Method Tokens as Thunks by default.
 * -- Use the sc modifier "nothunks" to change this default
 */
#undef somresolve_
#define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))

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

// M_WPFileSystem::new creates the class object if necessary, and then uses somNewNoInit
// to allocate memory and create the object. Initialization is in ctors.
void *operator new(size_t)
{
   if (!_M_WPFileSystem) M_WPFileSystemNewClass(M_WPFileSystem_MajorVersion,M_WPFileSystem_MinorVersion);
   return (void*)
      SOM_Resolve(_M_WPFileSystem,SOMClass,somNewNoInit)
         ((SOMClass *)((void*)_M_WPFileSystem));
}

// M_WPFileSystem::delete uses somDestruct.
void operator delete(void * obj)
{
   if (obj && *(void**)obj) {
      SOM_Resolve(obj,SOMObject,somDestruct)
         ((SOMObject*)obj, 1, 0);
   }
}

M_WPFileSystem& operator=(M_WPFileSystem& fromObj)
{
   this->somDefaultAssign(0,(SOMObject*)((void*)&fromObj));
   return *this;
}

M_WPFileSystem()
{
   if (*(void**)this != 
       ((somParentMtabStructPtr)
        (M_WPFileSystemCClassData.parentMtab))->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultInit(0);
}

M_WPFileSystem(M_WPFileSystem* fromObj)
{
   if (*(void**)this != 
       ((somParentMtabStructPtr)
        (M_WPFileSystemCClassData.parentMtab))->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultCopyInit(0,((SOMObject*)((void*)fromObj)));
}

M_WPFileSystem(const M_WPFileSystem* fromObj)
{
   if (*(void**)this != 
       ((somParentMtabStructPtr)
        (M_WPFileSystemCClassData.parentMtab))->mtab)
      return;
   ((SOMObject*)((void*)this))->somDefaultConstCopyInit(0,((SOMObject*)((void*)fromObj)));
}


/* method: wpclsQueryAwakeObject */
WPObject*   wpclsQueryAwakeObject(PSZ pszInputPath)
{
   return SOM_ResolveD(this,M_WPFileSystem,M_WPFileSystem,wpclsQueryAwakeObject)
	(this,pszInputPath);
}


/* method: wpclsFileSysExists */
WPObject*   wpclsFileSysExists(WPFolder* Folder, 
		PSZ pszFilename, 
		ULONG attrFile)
{
   return SOM_ResolveD(this,M_WPFileSystem,M_WPFileSystem,wpclsFileSysExists)
	(this,Folder,pszFilename,attrFile);
}


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


/* method: wpclsQueryInstanceType */
PSZ   wpclsQueryInstanceType()
{
   return SOM_ResolveD(this,M_WPFileSystem,M_WPFileSystem,wpclsQueryInstanceType)
	(this);
}


/* method: wpclsQueryInstanceFilter */
PSZ   wpclsQueryInstanceFilter()
{
   return SOM_ResolveD(this,M_WPFileSystem,M_WPFileSystem,wpclsQueryInstanceFilter)
	(this);
}


/* method: wpclsQueryInstanceClass */
PSZ   wpclsQueryInstanceClass()
{
   return SOM_ResolveD(this,M_WPFileSystem,M_WPFileSystem,wpclsQueryInstanceClass)
	(this);
}


/*
 * Reintroduce inherited methods
 */

/* method: somNew */
WPFileSystem*  somNew()
{
   return SOM_ResolveD(this,M_WPFileSystem,SOMClass,somNew)
	(this);
}



};   /* M_WPFileSystem */



#endif       /* SOM_M_WPFileSystem_xh */
