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

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

#ifndef wpfinder_xh
#define wpfinder_xh
class WPFinder;

#define WPFinder_MajorVersion 1
#define WPFinder_MinorVersion 2

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

/* C++ parent def */
#ifndef wpfilter_xh
#include "wpfilter.xh"
#endif

/*
 * Passthru lines: File: "C.xh", "after"
 */

   #define SATTR_INCLUDE_SUBFOLDERS   0x0001
   #define SATTR_INCLUDE_FINDRESULTS  0x0002
   #define SATTR_MULTIPLE_SELECT      0x0004
   #define SATTR_APPEND_RESULTS       0x0008

   #define FRESULTS_BUFSIZE           32
   typedef LHANDLE HFOBJ;

   typedef struct _FINDRESULTS
   {
      struct _FINDRESULTS *pNext;                      /* Next struct pointer */
      ULONG                cObjects;                   /* Count of found objs */
      OBJECT               Object[FRESULTS_BUFSIZE];           /* Object list */
      CHAR                 SelectState[FRESULTS_BUFSIZE];   /* Selection list */
   } FINDRESULTS;
   typedef FINDRESULTS *PFINDRESULTS;

   typedef struct _FOBJ
   {
      struct _FOBJ     *pNext;
      PFINDRESULTS      pFResults;                  /* Current results struct */
      ULONG             Index;                /* Index in current object list */
   } FOBJ;
   typedef FOBJ *PFOBJ;

   #define HANDLE_MAGIC 0x99999999


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

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

/* A macro to return the WPFinder class object */
class M_WPFinder;
#define _WPFinder ((M_WPFinder*)WPFinderClassData.classObject)

/* The static interface to WPFinder and its instances */
SOMEXTERN struct WPFinderClassDataStructure {
	SOMClass *classObject;
	somMToken wpFind;
	somMToken wpSetFindAttrs;
	somMToken wpQueryFindAttrs;
	somMToken wpSetStartFolder;
	somMToken wpQueryStartFolder;
	somMToken wpBeginEnumFoundObj;
	somMToken wpEndEnumFoundObj;
	somMToken wpGetNextFoundObj;
	somMToken wpFindParametersDialog;
	somMToken wpSelectionListDialog;
	somMToken wpCreateFindResultsFolder;
	somMToken wpSetSelectionState;
	somMToken wpAllocResultBlock;
	somMToken wpFreeResultBlock;
	somMToken wpCleanupFindResults;
} WPFinderClassData;

/*
 * -- Typedefs for Procedures that support WPFinder Methods
 */
extern "C" {
typedef BOOL    (SOMLINK *somTD_WPFinder_wpSetFindAttrs)(WPFinder *somSelf,ULONG ulAttrs);
typedef ULONG    (SOMLINK *somTD_WPFinder_wpQueryFindAttrs)(WPFinder *somSelf);
typedef BOOL    (SOMLINK *somTD_WPFinder_wpFind)(WPFinder *somSelf,HWND hwndOwner,BOOL fShowCriteria);
typedef BOOL    (SOMLINK *somTD_WPFinder_wpSetStartFolder)(WPFinder *somSelf,WPFolder *Folder);
typedef WPFolder *   (SOMLINK *somTD_WPFinder_wpQueryStartFolder)(WPFinder *somSelf);
typedef HFOBJ    (SOMLINK *somTD_WPFinder_wpBeginEnumFoundObj)(WPFinder *somSelf);
typedef BOOL    (SOMLINK *somTD_WPFinder_wpEndEnumFoundObj)(WPFinder *somSelf,HFOBJ hfo);
typedef WPObject *   (SOMLINK *somTD_WPFinder_wpGetNextFoundObj)(WPFinder *somSelf,HFOBJ hfo,BOOL fSelected);
typedef BOOL    (SOMLINK *somTD_WPFinder_wpFindParametersDialog)(WPFinder *somSelf,HWND hwndOwner);
typedef BOOL    (SOMLINK *somTD_WPFinder_wpSelectionListDialog)(WPFinder *somSelf,HWND hwndOwner);
typedef WPFolder *   (SOMLINK *somTD_WPFinder_wpCreateFindResultsFolder)(WPFinder *somSelf,WPFolder *Location,PSZ pszTitle);
}


#endif /* WPFinder_API */


/*
 * -- The C++ Wrapper Class for WPFinder
 */
class WPFinder : public WPFilter
{
public:

void *operator new(size_t size)
{
   (void) size;
   if (!WPFinderClassData.classObject) 
      WPFinderNewClass(WPFinder_MajorVersion,WPFinder_MinorVersion);
   return (void *)
      ((somTD_SOMClass_somNew)
      somResolve(SOM_TestCls((SOMAny *)(WPFinderClassData.classObject),
                             SOMClassClassData.classObject),
                 SOMClassClassData.somNew))
         ((SOMClass*)(WPFinderClassData.classObject));
}

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

/* public method: wpSetFindAttrs */
BOOL    wpSetFindAttrs(ULONG ulAttrs)
{
   return (BOOL) SOM_Resolve((SOMAny *)this,WPFinder,wpSetFindAttrs)
	(this,ulAttrs);
}


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


/* public method: wpFind */
BOOL    wpFind(HWND hwndOwner,
		BOOL fShowCriteria)
{
   return (BOOL) SOM_Resolve((SOMAny *)this,WPFinder,wpFind)
	(this,hwndOwner,fShowCriteria);
}


/* public method: wpSetStartFolder */
BOOL    wpSetStartFolder(WPFolder *Folder)
{
   return (BOOL) SOM_Resolve((SOMAny *)this,WPFinder,wpSetStartFolder)
	(this,Folder);
}


/* public method: wpQueryStartFolder */
WPFolder *   wpQueryStartFolder()
{
   return (WPFolder*) SOM_Resolve((SOMAny *)this,WPFinder,wpQueryStartFolder)
	(this);
}


/* public method: wpBeginEnumFoundObj */
HFOBJ    wpBeginEnumFoundObj()
{
   return (HFOBJ) SOM_Resolve((SOMAny *)this,WPFinder,wpBeginEnumFoundObj)
	(this);
}


/* public method: wpEndEnumFoundObj */
BOOL    wpEndEnumFoundObj(HFOBJ hfo)
{
   return (BOOL) SOM_Resolve((SOMAny *)this,WPFinder,wpEndEnumFoundObj)
	(this,hfo);
}


/* public method: wpGetNextFoundObj */
WPObject *   wpGetNextFoundObj(HFOBJ hfo,
		BOOL fSelected)
{
   return (WPObject*) SOM_Resolve((SOMAny *)this,WPFinder,wpGetNextFoundObj)
	(this,hfo,fSelected);
}


/* public method: wpFindParametersDialog */
BOOL    wpFindParametersDialog(HWND hwndOwner)
{
   return (BOOL) SOM_Resolve((SOMAny *)this,WPFinder,wpFindParametersDialog)
	(this,hwndOwner);
}


/* public method: wpSelectionListDialog */
BOOL    wpSelectionListDialog(HWND hwndOwner)
{
   return (BOOL) SOM_Resolve((SOMAny *)this,WPFinder,wpSelectionListDialog)
	(this,hwndOwner);
}


/* public method: wpCreateFindResultsFolder */
WPFolder *   wpCreateFindResultsFolder(WPFolder *Location,
		PSZ pszTitle)
{
   return (WPFolder*) SOM_Resolve((SOMAny *)this,WPFinder,wpCreateFindResultsFolder)
	(this,Location,pszTitle);
}



};   /* WPFinder */



#endif       /* wpfinder_xh */

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

#define M_WPFinder_MajorVersion 1
#define M_WPFinder_MinorVersion 2

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

/* C++ parent def */
#ifndef wpfilter_xh
#include "wpfilter.xh"
#endif

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

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

/* A macro to return the M_WPFinder class object */
#define _M_WPFinder ((SOMClass*)M_WPFinderClassData.classObject)

/* The static interface to M_WPFinder and its instances */
SOMEXTERN struct M_WPFinderClassDataStructure {
	SOMClass *classObject;
} M_WPFinderClassData;

/*
 * -- Typedefs for Procedures that support M_WPFinder Methods
 */
extern "C" {
}


#endif /* M_WPFinder_API */


/*
 * -- The C++ Wrapper Class for M_WPFinder
 */
class M_WPFinder : public M_WPFilter
{
public:

void *operator new(size_t size)
{
   (void) size;
   if (!M_WPFinderClassData.classObject) 
      M_WPFinderNewClass(M_WPFinder_MajorVersion,M_WPFinder_MinorVersion);
   return (void *)
      ((somTD_SOMClass_somNew)
      somResolve(SOM_TestCls((SOMAny *)(M_WPFinderClassData.classObject),
                             SOMClassClassData.classObject),
                 SOMClassClassData.somNew))
         ((SOMClass*)(M_WPFinderClassData.classObject));
}

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


};   /* M_WPFinder */



#endif       /* wpfinder_mxh */
