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

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

#ifndef wppgm_xh
#define wppgm_xh
class WPProgram;

#define WPProgram_MajorVersion 1
#define WPProgram_MinorVersion 2

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

/* C++ parent def */
#ifndef wpabs_xh
#include "wpabs.xh"
#endif

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

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

/* A macro to return the WPProgram class object */
class M_WPProgram;
#define _WPProgram ((M_WPProgram*)WPProgramClassData.classObject)

/* The static interface to WPProgram and its instances */
SOMEXTERN struct WPProgramClassDataStructure {
	SOMClass *classObject;
	somMToken wpAddProgramPage;
	somMToken wpAddProgramSessionPage;
	somMToken wpQueryProgDetails;
	somMToken wpSetProgDetails;
	somMToken wpSetHPROGRAM;
	somMToken wpQueryHPROGRAM;
	somMToken wpAddProgramAssociationPage;
	somMToken wpSetProgIcon;
	somMToken wpQueryAssociationFilter;
	somMToken wpQueryAssociationType;
	somMToken wpSetAssociationFilter;
	somMToken wpSetAssociationType;
} WPProgramClassData;

/*
 * -- Typedefs for Procedures that support WPProgram Methods
 */
extern "C" {
typedef ULONG    (SOMLINK *somTD_WPProgram_wpAddProgramAssociationPage)(WPProgram *somSelf,HWND hwndNotebook);
typedef BOOL    (SOMLINK *somTD_WPProgram_wpQueryProgDetails)(WPProgram *somSelf,PPROGDETAILS pProgDetails,PULONG pulSize);
typedef BOOL    (SOMLINK *somTD_WPProgram_wpSetProgDetails)(WPProgram *somSelf,PPROGDETAILS pProgDetails);
typedef ULONG    (SOMLINK *somTD_WPProgram_wpAddProgramPage)(WPProgram *somSelf,HWND hwndNotebook);
typedef ULONG    (SOMLINK *somTD_WPProgram_wpAddProgramSessionPage)(WPProgram *somSelf,HWND hwndNotebook);
typedef PSZ    (SOMLINK *somTD_WPProgram_wpQueryAssociationFilter)(WPProgram *somSelf);
typedef PSZ    (SOMLINK *somTD_WPProgram_wpQueryAssociationType)(WPProgram *somSelf);
typedef BOOL    (SOMLINK *somTD_WPProgram_wpSetAssociationFilter)(WPProgram *somSelf,PSZ pszFilter);
typedef BOOL    (SOMLINK *somTD_WPProgram_wpSetAssociationType)(WPProgram *somSelf,PSZ pszType);
}


#endif /* WPProgram_API */


/*
 * -- The C++ Wrapper Class for WPProgram
 */
class WPProgram : public WPAbstract
{
public:

void *operator new(size_t size)
{
   (void) size;
   if (!WPProgramClassData.classObject) 
      WPProgramNewClass(WPProgram_MajorVersion,WPProgram_MinorVersion);
   return (void *)
      ((somTD_SOMClass_somNew)
      somResolve(SOM_TestCls((SOMAny *)(WPProgramClassData.classObject),
                             SOMClassClassData.classObject),
                 SOMClassClassData.somNew))
         ((SOMClass*)(WPProgramClassData.classObject));
}

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

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


/* public method: wpQueryProgDetails */
BOOL    wpQueryProgDetails(PPROGDETAILS pProgDetails,
		PULONG pulSize)
{
   return (BOOL) SOM_Resolve((SOMAny *)this,WPProgram,wpQueryProgDetails)
	(this,pProgDetails,pulSize);
}


/* public method: wpSetProgDetails */
BOOL    wpSetProgDetails(PPROGDETAILS pProgDetails)
{
   return (BOOL) SOM_Resolve((SOMAny *)this,WPProgram,wpSetProgDetails)
	(this,pProgDetails);
}


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


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


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


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


/* public method: wpSetAssociationFilter */
BOOL    wpSetAssociationFilter(PSZ pszFilter)
{
   return (BOOL) SOM_Resolve((SOMAny *)this,WPProgram,wpSetAssociationFilter)
	(this,pszFilter);
}


/* public method: wpSetAssociationType */
BOOL    wpSetAssociationType(PSZ pszType)
{
   return (BOOL) SOM_Resolve((SOMAny *)this,WPProgram,wpSetAssociationType)
	(this,pszType);
}



};   /* WPProgram */



/*
 * Type Independent (name lookup) Method Invocation Support
 */

#ifndef lookup_wpAddProgramAssociationPage
#define lookup_wpAddProgramAssociationPage lookup_wpAddProgramAssociationPage
static char *somLMN_wpAddProgramAssociationPage = "wpAddProgramAssociationPage";
static somId somLId_wpAddProgramAssociationPage = &somLMN_wpAddProgramAssociationPage;
static ULONG   SOMLINK lookup_wpAddProgramAssociationPage(SOMObject *somSelf,
		HWND hwndNotebook)
{
   return (ULONG) (((somTD_WPProgram_wpAddProgramAssociationPage ) \
	somSelf->somGetClass()->somFindSMethodOk(somLId_wpAddProgramAssociationPage)) \
	    ((WPProgram *)somSelf,hwndNotebook));
}
#endif


#ifndef lookup_wpQueryProgDetails
#define lookup_wpQueryProgDetails lookup_wpQueryProgDetails
static char *somLMN_wpQueryProgDetails = "wpQueryProgDetails";
static somId somLId_wpQueryProgDetails = &somLMN_wpQueryProgDetails;
static BOOL   SOMLINK lookup_wpQueryProgDetails(SOMObject *somSelf,
		PPROGDETAILS pProgDetails,
		PULONG pulSize)
{
   return (BOOL) (((somTD_WPProgram_wpQueryProgDetails ) \
	somSelf->somGetClass()->somFindSMethodOk(somLId_wpQueryProgDetails)) \
	    ((WPProgram *)somSelf,pProgDetails,pulSize));
}
#endif


#ifndef lookup_wpSetProgDetails
#define lookup_wpSetProgDetails lookup_wpSetProgDetails
static char *somLMN_wpSetProgDetails = "wpSetProgDetails";
static somId somLId_wpSetProgDetails = &somLMN_wpSetProgDetails;
static BOOL   SOMLINK lookup_wpSetProgDetails(SOMObject *somSelf,
		PPROGDETAILS pProgDetails)
{
   return (BOOL) (((somTD_WPProgram_wpSetProgDetails ) \
	somSelf->somGetClass()->somFindSMethodOk(somLId_wpSetProgDetails)) \
	    ((WPProgram *)somSelf,pProgDetails));
}
#endif


#ifndef lookup_wpAddProgramPage
#define lookup_wpAddProgramPage lookup_wpAddProgramPage
static char *somLMN_wpAddProgramPage = "wpAddProgramPage";
static somId somLId_wpAddProgramPage = &somLMN_wpAddProgramPage;
static ULONG   SOMLINK lookup_wpAddProgramPage(SOMObject *somSelf,
		HWND hwndNotebook)
{
   return (ULONG) (((somTD_WPProgram_wpAddProgramPage ) \
	somSelf->somGetClass()->somFindSMethodOk(somLId_wpAddProgramPage)) \
	    ((WPProgram *)somSelf,hwndNotebook));
}
#endif


#ifndef lookup_wpAddProgramSessionPage
#define lookup_wpAddProgramSessionPage lookup_wpAddProgramSessionPage
static char *somLMN_wpAddProgramSessionPage = "wpAddProgramSessionPage";
static somId somLId_wpAddProgramSessionPage = &somLMN_wpAddProgramSessionPage;
static ULONG   SOMLINK lookup_wpAddProgramSessionPage(SOMObject *somSelf,
		HWND hwndNotebook)
{
   return (ULONG) (((somTD_WPProgram_wpAddProgramSessionPage ) \
	somSelf->somGetClass()->somFindSMethodOk(somLId_wpAddProgramSessionPage)) \
	    ((WPProgram *)somSelf,hwndNotebook));
}
#endif


#ifndef lookup_wpQueryAssociationFilter
#define lookup_wpQueryAssociationFilter lookup_wpQueryAssociationFilter
static char *somLMN_wpQueryAssociationFilter = "wpQueryAssociationFilter";
static somId somLId_wpQueryAssociationFilter = &somLMN_wpQueryAssociationFilter;
static PSZ   SOMLINK lookup_wpQueryAssociationFilter(SOMObject *somSelf)
{
   return (PSZ) (((somTD_WPProgram_wpQueryAssociationFilter ) \
	somSelf->somGetClass()->somFindSMethodOk(somLId_wpQueryAssociationFilter)) \
	    ((WPProgram *)somSelf));
}
#endif


#ifndef lookup_wpQueryAssociationType
#define lookup_wpQueryAssociationType lookup_wpQueryAssociationType
static char *somLMN_wpQueryAssociationType = "wpQueryAssociationType";
static somId somLId_wpQueryAssociationType = &somLMN_wpQueryAssociationType;
static PSZ   SOMLINK lookup_wpQueryAssociationType(SOMObject *somSelf)
{
   return (PSZ) (((somTD_WPProgram_wpQueryAssociationType ) \
	somSelf->somGetClass()->somFindSMethodOk(somLId_wpQueryAssociationType)) \
	    ((WPProgram *)somSelf));
}
#endif


#ifndef lookup_wpSetAssociationFilter
#define lookup_wpSetAssociationFilter lookup_wpSetAssociationFilter
static char *somLMN_wpSetAssociationFilter = "wpSetAssociationFilter";
static somId somLId_wpSetAssociationFilter = &somLMN_wpSetAssociationFilter;
static BOOL   SOMLINK lookup_wpSetAssociationFilter(SOMObject *somSelf,
		PSZ pszFilter)
{
   return (BOOL) (((somTD_WPProgram_wpSetAssociationFilter ) \
	somSelf->somGetClass()->somFindSMethodOk(somLId_wpSetAssociationFilter)) \
	    ((WPProgram *)somSelf,pszFilter));
}
#endif


#ifndef lookup_wpSetAssociationType
#define lookup_wpSetAssociationType lookup_wpSetAssociationType
static char *somLMN_wpSetAssociationType = "wpSetAssociationType";
static somId somLId_wpSetAssociationType = &somLMN_wpSetAssociationType;
static BOOL   SOMLINK lookup_wpSetAssociationType(SOMObject *somSelf,
		PSZ pszType)
{
   return (BOOL) (((somTD_WPProgram_wpSetAssociationType ) \
	somSelf->somGetClass()->somFindSMethodOk(somLId_wpSetAssociationType)) \
	    ((WPProgram *)somSelf,pszType));
}
#endif


#endif       /* wppgm_xh */

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

#define M_WPProgram_MajorVersion 1
#define M_WPProgram_MinorVersion 2

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

/* C++ parent def */
#ifndef wpabs_xh
#include "wpabs.xh"
#endif

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

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

/* A macro to return the M_WPProgram class object */
#define _M_WPProgram ((SOMClass*)M_WPProgramClassData.classObject)

/* The static interface to M_WPProgram and its instances */
SOMEXTERN struct M_WPProgramClassDataStructure {
	SOMClass *classObject;
} M_WPProgramClassData;

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


#endif /* M_WPProgram_API */


/*
 * -- The C++ Wrapper Class for M_WPProgram
 */
class M_WPProgram : public M_WPAbstract
{
public:

void *operator new(size_t size)
{
   (void) size;
   if (!M_WPProgramClassData.classObject) 
      M_WPProgramNewClass(M_WPProgram_MajorVersion,M_WPProgram_MinorVersion);
   return (void *)
      ((somTD_SOMClass_somNew)
      somResolve(SOM_TestCls((SOMAny *)(M_WPProgramClassData.classObject),
                             SOMClassClassData.classObject),
                 SOMClassClassData.somNew))
         ((SOMClass*)(M_WPProgramClassData.classObject));
}

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


};   /* M_WPProgram */



#endif       /* wppgm_mxh */
