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

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


#ifndef SOM_WPProgram_xh
#define SOM_WPProgram_xh

class WPProgram;

#define WPProgram_MajorVersion 1
#define WPProgram_MinorVersion 2

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

/* C++ parent defs */
#ifndef SOM_WPAbstract_xh
#include <wpabs.xh>
#endif

#ifndef WPProgram_API
#define WPProgram_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_WPAbstract;
class M_WPProgram;

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

/*
 * Passthru lines: File: "C.h", "after"
 */
#define DebugBox(title, text) WinMessageBox(  \            
                                 HWND_DESKTOP, \            
                                 HWND_DESKTOP, \            
                                 (PSZ) text,   \            
                                 (PSZ) title,  \            
                                 0, MB_OK | MB_INFORMATION) 

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

/* The API to the WPProgram class object, and the methods it introduces. */
SOMEXTERN struct WPProgramClassDataStructure {
	M_WPProgram *classObject;
	somMToken wpAddProgramPage;
	somMToken wpAddProgramSessionPage;
	somMToken wpQueryProgDetails;
	somMToken wpSetProgDetails;
	somMToken wpProgramPrivate1;
	somMToken wpProgramPrivate2;
	somMToken wpAddProgramAssociationPage;
	somMToken wpSetProgIcon;
	somMToken wpQueryAssociationFilter;
	somMToken wpQueryAssociationType;
	somMToken wpSetAssociationFilter;
	somMToken wpSetAssociationType;
	somMToken wpQueryProgramAssociations;
	somMToken wpSetProgramAssociations;
	somMToken wpQueryWarnBeforeStart;
	somMToken wpSetWarnBeforeStart;
	somMToken undefined1;
	somMToken wpSetDefaultBidiSettings;
	somMToken wpQueryDefaultBidiSettings;
	somMToken SetUpdateIndicator;
	somMToken QueryUpdateIndicator;
	somMToken wpSetBidiValues;
	somMToken wpQueryBidiValues;
	somMToken SetNeedSave;
	somMToken QueryNeedSave;
	somMToken undefined6;
	somMToken wpInsertBidiPage;
	somMToken wpSaveBidiState;
	somMToken wpRestoreBidiState;
	somMToken wpBidiSetup;
	somMToken wpInitBidiData;
	somMToken _get_hwndSettingsNotebook;
	somMToken _set_hwndSettingsNotebook;
	somMToken wpSettingsNotebook;
	somMToken wpSetDefaultCpSettings;
	somMToken wpSetCpValues;
	somMToken wpQueryCpValues;
	somMToken wpSaveCpState;
	somMToken wpRestoreCpState;
	somMToken wpInitCpData;
	somMToken wpUndoCpSettings;
} SOMDLINK WPProgramClassData;
#define _WPProgram WPProgramClassData.classObject

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

/*
 * -- Typedefs for WPProgram Method Procedures
 */
SOMEXTERN {
typedef ULONG   SOMLINK somTP_WPProgram_wpAddProgramAssociationPage(WPProgram *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPProgram_wpAddProgramAssociationPage *somTD_WPProgram_wpAddProgramAssociationPage;
typedef BOOL   SOMLINK somTP_WPProgram_wpQueryProgDetails(WPProgram *somSelf, 
		PPROGDETAILS pProgDetails, 
		PULONG pulSize);
typedef somTP_WPProgram_wpQueryProgDetails *somTD_WPProgram_wpQueryProgDetails;
typedef BOOL   SOMLINK somTP_WPProgram_wpSetProgDetails(WPProgram *somSelf, 
		PPROGDETAILS pProgDetails);
typedef somTP_WPProgram_wpSetProgDetails *somTD_WPProgram_wpSetProgDetails;
typedef ULONG   SOMLINK somTP_WPProgram_wpAddProgramPage(WPProgram *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPProgram_wpAddProgramPage *somTD_WPProgram_wpAddProgramPage;
typedef ULONG   SOMLINK somTP_WPProgram_wpAddProgramSessionPage(WPProgram *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPProgram_wpAddProgramSessionPage *somTD_WPProgram_wpAddProgramSessionPage;
typedef PSZ   SOMLINK somTP_WPProgram_wpQueryAssociationFilter(WPProgram *somSelf);
typedef somTP_WPProgram_wpQueryAssociationFilter *somTD_WPProgram_wpQueryAssociationFilter;
typedef PSZ   SOMLINK somTP_WPProgram_wpQueryAssociationType(WPProgram *somSelf);
typedef somTP_WPProgram_wpQueryAssociationType *somTD_WPProgram_wpQueryAssociationType;
typedef BOOL   SOMLINK somTP_WPProgram_wpSetAssociationFilter(WPProgram *somSelf, 
		PSZ pszFilter);
typedef somTP_WPProgram_wpSetAssociationFilter *somTD_WPProgram_wpSetAssociationFilter;
typedef BOOL   SOMLINK somTP_WPProgram_wpSetAssociationType(WPProgram *somSelf, 
		PSZ pszType);
typedef somTP_WPProgram_wpSetAssociationType *somTD_WPProgram_wpSetAssociationType;
typedef PSZ   SOMLINK somTP_WPProgram_wpQueryProgramAssociations(WPProgram *somSelf, 
		PBYTE ptr, 
		PSZ pszAssoc, 
		BOOL fFilter);
typedef somTP_WPProgram_wpQueryProgramAssociations *somTD_WPProgram_wpQueryProgramAssociations;
typedef BOOL   SOMLINK somTP_WPProgram_wpSetProgramAssociations(WPProgram *somSelf, 
		PSZ pszAssoc, 
		BOOL fFilter);
typedef somTP_WPProgram_wpSetProgramAssociations *somTD_WPProgram_wpSetProgramAssociations;
typedef BOOL   SOMLINK somTP_WPProgram_wpQueryWarnBeforeStart(WPProgram *somSelf);
typedef somTP_WPProgram_wpQueryWarnBeforeStart *somTD_WPProgram_wpQueryWarnBeforeStart;
typedef BOOL   SOMLINK somTP_WPProgram_wpSetWarnBeforeStart(WPProgram *somSelf, 
		BOOL fWarnBeforeStart);
typedef somTP_WPProgram_wpSetWarnBeforeStart *somTD_WPProgram_wpSetWarnBeforeStart;
typedef BOOL   SOMLINK somTP_WPProgram_wpSetProgIcon(WPProgram *somSelf, 
		PFEA2LIST pfeal);
typedef somTP_WPProgram_wpSetProgIcon *somTD_WPProgram_wpSetProgIcon;
typedef void   SOMLINK somTP_WPProgram_wpSetDefaultBidiSettings(WPProgram *somSelf, 
		ULONG ulBidiSetting, 
		BOOL flSet);
typedef somTP_WPProgram_wpSetDefaultBidiSettings *somTD_WPProgram_wpSetDefaultBidiSettings;
typedef void   SOMLINK somTP_WPProgram_wpSetDefaultCpSettings(WPProgram *somSelf);
typedef somTP_WPProgram_wpSetDefaultCpSettings *somTD_WPProgram_wpSetDefaultCpSettings;
typedef BOOL   SOMLINK somTP_WPProgram_wpQueryDefaultBidiSettings(WPProgram *somSelf, 
		ULONG ulBidiSetting);
typedef somTP_WPProgram_wpQueryDefaultBidiSettings *somTD_WPProgram_wpQueryDefaultBidiSettings;
typedef void   SOMLINK somTP_WPProgram_wpSetBidiValues(WPProgram *somSelf, 
		ULONG ulBidiSetting, 
		ULONG ulBidiValue, 
		ULONG ulBidiMask);
typedef somTP_WPProgram_wpSetBidiValues *somTD_WPProgram_wpSetBidiValues;
typedef void   SOMLINK somTP_WPProgram_wpSetCpValues(WPProgram *somSelf, 
		ULONG ulSetting, 
		void* ulValue);
typedef somTP_WPProgram_wpSetCpValues *somTD_WPProgram_wpSetCpValues;
typedef ULONG   SOMLINK somTP_WPProgram_wpQueryBidiValues(WPProgram *somSelf, 
		ULONG ulBidiSetting);
typedef somTP_WPProgram_wpQueryBidiValues *somTD_WPProgram_wpQueryBidiValues;
typedef void   SOMLINK somTP_WPProgram_wpQueryCpValues(WPProgram *somSelf, 
		ULONG ulSetting, 
		void* ulValue);
typedef somTP_WPProgram_wpQueryCpValues *somTD_WPProgram_wpQueryCpValues;
typedef BOOL   SOMLINK somTP_WPProgram_wpInsertBidiPage(WPProgram *somSelf, 
		HWND hwndNotebook, 
		ULONG ulBidiSettings);
typedef somTP_WPProgram_wpInsertBidiPage *somTD_WPProgram_wpInsertBidiPage;
typedef BOOL   SOMLINK somTP_WPProgram_wpSaveBidiState(WPProgram *somSelf);
typedef somTP_WPProgram_wpSaveBidiState *somTD_WPProgram_wpSaveBidiState;
typedef BOOL   SOMLINK somTP_WPProgram_wpSaveCpState(WPProgram *somSelf);
typedef somTP_WPProgram_wpSaveCpState *somTD_WPProgram_wpSaveCpState;
typedef BOOL   SOMLINK somTP_WPProgram_wpRestoreBidiState(WPProgram *somSelf, 
		ULONG ulReserved);
typedef somTP_WPProgram_wpRestoreBidiState *somTD_WPProgram_wpRestoreBidiState;
typedef BOOL   SOMLINK somTP_WPProgram_wpRestoreCpState(WPProgram *somSelf);
typedef somTP_WPProgram_wpRestoreCpState *somTD_WPProgram_wpRestoreCpState;
typedef void   SOMLINK somTP_WPProgram_wpUndoCpSettings(WPProgram *somSelf);
typedef somTP_WPProgram_wpUndoCpSettings *somTD_WPProgram_wpUndoCpSettings;
typedef void   SOMLINK somTP_WPProgram_wpInitBidiData(WPProgram *somSelf);
typedef somTP_WPProgram_wpInitBidiData *somTD_WPProgram_wpInitBidiData;
typedef void   SOMLINK somTP_WPProgram_wpInitCpData(WPProgram *somSelf);
typedef somTP_WPProgram_wpInitCpData *somTD_WPProgram_wpInitCpData;
typedef BOOL   SOMLINK somTP_WPProgram_wpBidiSetup(WPProgram *somSelf, 
		PSZ pszSetupString);
typedef somTP_WPProgram_wpBidiSetup *somTD_WPProgram_wpBidiSetup;
typedef HWND   SOMLINK somTP_WPProgram_wpSettingsNotebook(WPProgram *somSelf);
typedef somTP_WPProgram_wpSettingsNotebook *somTD_WPProgram_wpSettingsNotebook;
typedef void   SOMLINK somTP_WPProgram_SetUpdateIndicator(WPProgram *somSelf, 
		ULONG ulBidiSetting, 
		BOOL flSet);
typedef somTP_WPProgram_SetUpdateIndicator *somTD_WPProgram_SetUpdateIndicator;
typedef BOOL   SOMLINK somTP_WPProgram_QueryUpdateIndicator(WPProgram *somSelf, 
		ULONG ulBidiSetting);
typedef somTP_WPProgram_QueryUpdateIndicator *somTD_WPProgram_QueryUpdateIndicator;
typedef void   SOMLINK somTP_WPProgram_SetNeedSave(WPProgram *somSelf, 
		BOOL flNeedSave);
typedef somTP_WPProgram_SetNeedSave *somTD_WPProgram_SetNeedSave;
typedef BOOL   SOMLINK somTP_WPProgram_QueryNeedSave(WPProgram *somSelf);
typedef somTP_WPProgram_QueryNeedSave *somTD_WPProgram_QueryNeedSave;

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef M_WPProgram*   SOMLINK somTP_WPProgram_somGetClass(WPProgram *somSelf);
typedef somTP_WPProgram_somGetClass *somTD_WPProgram_somGetClass;
}

#endif /* WPProgram_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 WPProgram
 */
class WPProgram : public WPAbstract
{
public:

// WPProgram::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 (!_WPProgram) WPProgramNewClass(WPProgram_MajorVersion,WPProgram_MinorVersion);
   return (void*)
      SOM_Resolve(_WPProgram,SOMClass,somNewNoInit)
         ((SOMClass *)((void*)_WPProgram));
}

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

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

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

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

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


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


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


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


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


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


/* method: wpQueryAssociationFilter */
PSZ   wpQueryAssociationFilter()
{
   return SOM_ResolveD(this,WPProgram,WPProgram,wpQueryAssociationFilter)
	(this);
}


/* method: wpQueryAssociationType */
PSZ   wpQueryAssociationType()
{
   return SOM_ResolveD(this,WPProgram,WPProgram,wpQueryAssociationType)
	(this);
}


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


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


/* method: wpQueryProgramAssociations */
PSZ   wpQueryProgramAssociations(PBYTE ptr, 
		PSZ pszAssoc, 
		BOOL fFilter)
{
   return SOM_ResolveD(this,WPProgram,WPProgram,wpQueryProgramAssociations)
	(this,ptr,pszAssoc,fFilter);
}


/* method: wpSetProgramAssociations */
BOOL   wpSetProgramAssociations(PSZ pszAssoc, 
		BOOL fFilter)
{
   return SOM_ResolveD(this,WPProgram,WPProgram,wpSetProgramAssociations)
	(this,pszAssoc,fFilter);
}


/* method: wpQueryWarnBeforeStart */
BOOL   wpQueryWarnBeforeStart()
{
   return SOM_ResolveD(this,WPProgram,WPProgram,wpQueryWarnBeforeStart)
	(this);
}


/* method: wpSetWarnBeforeStart */
BOOL   wpSetWarnBeforeStart(BOOL fWarnBeforeStart)
{
   return SOM_ResolveD(this,WPProgram,WPProgram,wpSetWarnBeforeStart)
	(this,fWarnBeforeStart);
}


/* method: wpSetProgIcon */
BOOL   wpSetProgIcon(PFEA2LIST pfeal)
{
   return SOM_ResolveD(this,WPProgram,WPProgram,wpSetProgIcon)
	(this,pfeal);
}


/* method: wpSetDefaultBidiSettings */
void   wpSetDefaultBidiSettings(ULONG ulBidiSetting, 
		BOOL flSet)
{
   SOM_ResolveD(this,WPProgram,WPProgram,wpSetDefaultBidiSettings)
	(this,ulBidiSetting,flSet);
}


/* method: wpSetDefaultCpSettings */
void   wpSetDefaultCpSettings()
{
   SOM_ResolveD(this,WPProgram,WPProgram,wpSetDefaultCpSettings)
	(this);
}


/* method: wpQueryDefaultBidiSettings */
BOOL   wpQueryDefaultBidiSettings(ULONG ulBidiSetting)
{
   return SOM_ResolveD(this,WPProgram,WPProgram,wpQueryDefaultBidiSettings)
	(this,ulBidiSetting);
}


/* method: wpSetBidiValues */
void   wpSetBidiValues(ULONG ulBidiSetting, 
		ULONG ulBidiValue, 
		ULONG ulBidiMask)
{
   SOM_ResolveD(this,WPProgram,WPProgram,wpSetBidiValues)
	(this,ulBidiSetting,ulBidiValue,ulBidiMask);
}


/* method: wpSetCpValues */
void   wpSetCpValues(ULONG ulSetting, 
		void* ulValue)
{
   SOM_ResolveD(this,WPProgram,WPProgram,wpSetCpValues)
	(this,ulSetting,ulValue);
}


/* method: wpQueryBidiValues */
ULONG   wpQueryBidiValues(ULONG ulBidiSetting)
{
   return SOM_ResolveD(this,WPProgram,WPProgram,wpQueryBidiValues)
	(this,ulBidiSetting);
}


/* method: wpQueryCpValues */
void   wpQueryCpValues(ULONG ulSetting, 
		void* ulValue)
{
   SOM_ResolveD(this,WPProgram,WPProgram,wpQueryCpValues)
	(this,ulSetting,ulValue);
}


/* method: wpInsertBidiPage */
BOOL   wpInsertBidiPage(HWND hwndNotebook, 
		ULONG ulBidiSettings)
{
   return SOM_ResolveD(this,WPProgram,WPProgram,wpInsertBidiPage)
	(this,hwndNotebook,ulBidiSettings);
}


/* method: wpSaveBidiState */
BOOL   wpSaveBidiState()
{
   return SOM_ResolveD(this,WPProgram,WPProgram,wpSaveBidiState)
	(this);
}


/* method: wpSaveCpState */
BOOL   wpSaveCpState()
{
   return SOM_ResolveD(this,WPProgram,WPProgram,wpSaveCpState)
	(this);
}


/* method: wpRestoreBidiState */
BOOL   wpRestoreBidiState(ULONG ulReserved)
{
   return SOM_ResolveD(this,WPProgram,WPProgram,wpRestoreBidiState)
	(this,ulReserved);
}


/* method: wpRestoreCpState */
BOOL   wpRestoreCpState()
{
   return SOM_ResolveD(this,WPProgram,WPProgram,wpRestoreCpState)
	(this);
}


/* method: wpUndoCpSettings */
void   wpUndoCpSettings()
{
   SOM_ResolveD(this,WPProgram,WPProgram,wpUndoCpSettings)
	(this);
}


/* method: wpInitBidiData */
void   wpInitBidiData()
{
   SOM_ResolveD(this,WPProgram,WPProgram,wpInitBidiData)
	(this);
}


/* method: wpInitCpData */
void   wpInitCpData()
{
   SOM_ResolveD(this,WPProgram,WPProgram,wpInitCpData)
	(this);
}


/* method: wpBidiSetup */
BOOL   wpBidiSetup(PSZ pszSetupString)
{
   return SOM_ResolveD(this,WPProgram,WPProgram,wpBidiSetup)
	(this,pszSetupString);
}


/* method: wpSettingsNotebook */
HWND   wpSettingsNotebook()
{
   return SOM_ResolveD(this,WPProgram,WPProgram,wpSettingsNotebook)
	(this);
}


/* method: SetUpdateIndicator */
void   SetUpdateIndicator(ULONG ulBidiSetting, 
		BOOL flSet)
{
   SOM_ResolveD(this,WPProgram,WPProgram,SetUpdateIndicator)
	(this,ulBidiSetting,flSet);
}


/* method: QueryUpdateIndicator */
BOOL   QueryUpdateIndicator(ULONG ulBidiSetting)
{
   return SOM_ResolveD(this,WPProgram,WPProgram,QueryUpdateIndicator)
	(this,ulBidiSetting);
}


/* method: SetNeedSave */
void   SetNeedSave(BOOL flNeedSave)
{
   SOM_ResolveD(this,WPProgram,WPProgram,SetNeedSave)
	(this,flNeedSave);
}


/* method: QueryNeedSave */
BOOL   QueryNeedSave()
{
   return SOM_ResolveD(this,WPProgram,WPProgram,QueryNeedSave)
	(this);
}


/*
 * Reintroduce inherited methods
 */

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



};   /* WPProgram */



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

#ifndef somLUM_wpAddProgramAssociationPage
#define somLUM_wpAddProgramAssociationPage
static char *somLMN_wpAddProgramAssociationPage = "wpAddProgramAssociationPage";
static somId somLId_wpAddProgramAssociationPage = &somLMN_wpAddProgramAssociationPage;
#define WPProgram_lookup_wpAddProgramAssociationPage(somSelf,hwndNotebook) \
    ((( somTD_WPProgram_wpAddProgramAssociationPage ) \
	SOM_GetClass(somSelf)->somLookupMethod(somLId_wpAddProgramAssociationPage)) \
	    ((WPProgram*)somSelf,hwndNotebook))
#define lookup_wpAddProgramAssociationPage WPProgram_lookup_wpAddProgramAssociationPage
#endif


#ifndef somLUM_wpQueryProgDetails
#define somLUM_wpQueryProgDetails
static char *somLMN_wpQueryProgDetails = "wpQueryProgDetails";
static somId somLId_wpQueryProgDetails = &somLMN_wpQueryProgDetails;
#define WPProgram_lookup_wpQueryProgDetails(somSelf,pProgDetails,pulSize) \
    ((( somTD_WPProgram_wpQueryProgDetails ) \
	SOM_GetClass(somSelf)->somLookupMethod(somLId_wpQueryProgDetails)) \
	    ((WPProgram*)somSelf,pProgDetails,pulSize))
#define lookup_wpQueryProgDetails WPProgram_lookup_wpQueryProgDetails
#endif


#ifndef somLUM_wpSetProgDetails
#define somLUM_wpSetProgDetails
static char *somLMN_wpSetProgDetails = "wpSetProgDetails";
static somId somLId_wpSetProgDetails = &somLMN_wpSetProgDetails;
#define WPProgram_lookup_wpSetProgDetails(somSelf,pProgDetails) \
    ((( somTD_WPProgram_wpSetProgDetails ) \
	SOM_GetClass(somSelf)->somLookupMethod(somLId_wpSetProgDetails)) \
	    ((WPProgram*)somSelf,pProgDetails))
#define lookup_wpSetProgDetails WPProgram_lookup_wpSetProgDetails
#endif


#ifndef somLUM_wpAddProgramPage
#define somLUM_wpAddProgramPage
static char *somLMN_wpAddProgramPage = "wpAddProgramPage";
static somId somLId_wpAddProgramPage = &somLMN_wpAddProgramPage;
#define WPProgram_lookup_wpAddProgramPage(somSelf,hwndNotebook) \
    ((( somTD_WPProgram_wpAddProgramPage ) \
	SOM_GetClass(somSelf)->somLookupMethod(somLId_wpAddProgramPage)) \
	    ((WPProgram*)somSelf,hwndNotebook))
#define lookup_wpAddProgramPage WPProgram_lookup_wpAddProgramPage
#endif


#ifndef somLUM_wpAddProgramSessionPage
#define somLUM_wpAddProgramSessionPage
static char *somLMN_wpAddProgramSessionPage = "wpAddProgramSessionPage";
static somId somLId_wpAddProgramSessionPage = &somLMN_wpAddProgramSessionPage;
#define WPProgram_lookup_wpAddProgramSessionPage(somSelf,hwndNotebook) \
    ((( somTD_WPProgram_wpAddProgramSessionPage ) \
	SOM_GetClass(somSelf)->somLookupMethod(somLId_wpAddProgramSessionPage)) \
	    ((WPProgram*)somSelf,hwndNotebook))
#define lookup_wpAddProgramSessionPage WPProgram_lookup_wpAddProgramSessionPage
#endif


#ifndef somLUM_wpQueryAssociationFilter
#define somLUM_wpQueryAssociationFilter
static char *somLMN_wpQueryAssociationFilter = "wpQueryAssociationFilter";
static somId somLId_wpQueryAssociationFilter = &somLMN_wpQueryAssociationFilter;
#define WPProgram_lookup_wpQueryAssociationFilter(somSelf) \
    ((( somTD_WPProgram_wpQueryAssociationFilter ) \
	SOM_GetClass(somSelf)->somLookupMethod(somLId_wpQueryAssociationFilter)) \
	    ((WPProgram*)somSelf))
#define lookup_wpQueryAssociationFilter WPProgram_lookup_wpQueryAssociationFilter
#endif


#ifndef somLUM_wpQueryAssociationType
#define somLUM_wpQueryAssociationType
static char *somLMN_wpQueryAssociationType = "wpQueryAssociationType";
static somId somLId_wpQueryAssociationType = &somLMN_wpQueryAssociationType;
#define WPProgram_lookup_wpQueryAssociationType(somSelf) \
    ((( somTD_WPProgram_wpQueryAssociationType ) \
	SOM_GetClass(somSelf)->somLookupMethod(somLId_wpQueryAssociationType)) \
	    ((WPProgram*)somSelf))
#define lookup_wpQueryAssociationType WPProgram_lookup_wpQueryAssociationType
#endif


#ifndef somLUM_wpSetAssociationFilter
#define somLUM_wpSetAssociationFilter
static char *somLMN_wpSetAssociationFilter = "wpSetAssociationFilter";
static somId somLId_wpSetAssociationFilter = &somLMN_wpSetAssociationFilter;
#define WPProgram_lookup_wpSetAssociationFilter(somSelf,pszFilter) \
    ((( somTD_WPProgram_wpSetAssociationFilter ) \
	SOM_GetClass(somSelf)->somLookupMethod(somLId_wpSetAssociationFilter)) \
	    ((WPProgram*)somSelf,pszFilter))
#define lookup_wpSetAssociationFilter WPProgram_lookup_wpSetAssociationFilter
#endif


#ifndef somLUM_wpSetAssociationType
#define somLUM_wpSetAssociationType
static char *somLMN_wpSetAssociationType = "wpSetAssociationType";
static somId somLId_wpSetAssociationType = &somLMN_wpSetAssociationType;
#define WPProgram_lookup_wpSetAssociationType(somSelf,pszType) \
    ((( somTD_WPProgram_wpSetAssociationType ) \
	SOM_GetClass(somSelf)->somLookupMethod(somLId_wpSetAssociationType)) \
	    ((WPProgram*)somSelf,pszType))
#define lookup_wpSetAssociationType WPProgram_lookup_wpSetAssociationType
#endif


#ifndef somLUM_wpQueryProgramAssociations
#define somLUM_wpQueryProgramAssociations
static char *somLMN_wpQueryProgramAssociations = "wpQueryProgramAssociations";
static somId somLId_wpQueryProgramAssociations = &somLMN_wpQueryProgramAssociations;
#define WPProgram_lookup_wpQueryProgramAssociations(somSelf,ptr,pszAssoc,fFilter) \
    ((( somTD_WPProgram_wpQueryProgramAssociations ) \
	SOM_GetClass(somSelf)->somLookupMethod(somLId_wpQueryProgramAssociations)) \
	    ((WPProgram*)somSelf,ptr,pszAssoc,fFilter))
#define lookup_wpQueryProgramAssociations WPProgram_lookup_wpQueryProgramAssociations
#endif


#ifndef somLUM_wpSetProgramAssociations
#define somLUM_wpSetProgramAssociations
static char *somLMN_wpSetProgramAssociations = "wpSetProgramAssociations";
static somId somLId_wpSetProgramAssociations = &somLMN_wpSetProgramAssociations;
#define WPProgram_lookup_wpSetProgramAssociations(somSelf,pszAssoc,fFilter) \
    ((( somTD_WPProgram_wpSetProgramAssociations ) \
	SOM_GetClass(somSelf)->somLookupMethod(somLId_wpSetProgramAssociations)) \
	    ((WPProgram*)somSelf,pszAssoc,fFilter))
#define lookup_wpSetProgramAssociations WPProgram_lookup_wpSetProgramAssociations
#endif


#ifndef somLUM_wpQueryWarnBeforeStart
#define somLUM_wpQueryWarnBeforeStart
static char *somLMN_wpQueryWarnBeforeStart = "wpQueryWarnBeforeStart";
static somId somLId_wpQueryWarnBeforeStart = &somLMN_wpQueryWarnBeforeStart;
#define WPProgram_lookup_wpQueryWarnBeforeStart(somSelf) \
    ((( somTD_WPProgram_wpQueryWarnBeforeStart ) \
	SOM_GetClass(somSelf)->somLookupMethod(somLId_wpQueryWarnBeforeStart)) \
	    ((WPProgram*)somSelf))
#define lookup_wpQueryWarnBeforeStart WPProgram_lookup_wpQueryWarnBeforeStart
#endif


#ifndef somLUM_wpSetWarnBeforeStart
#define somLUM_wpSetWarnBeforeStart
static char *somLMN_wpSetWarnBeforeStart = "wpSetWarnBeforeStart";
static somId somLId_wpSetWarnBeforeStart = &somLMN_wpSetWarnBeforeStart;
#define WPProgram_lookup_wpSetWarnBeforeStart(somSelf,fWarnBeforeStart) \
    ((( somTD_WPProgram_wpSetWarnBeforeStart ) \
	SOM_GetClass(somSelf)->somLookupMethod(somLId_wpSetWarnBeforeStart)) \
	    ((WPProgram*)somSelf,fWarnBeforeStart))
#define lookup_wpSetWarnBeforeStart WPProgram_lookup_wpSetWarnBeforeStart
#endif


#ifndef somLUM_wpSetProgIcon
#define somLUM_wpSetProgIcon
static char *somLMN_wpSetProgIcon = "wpSetProgIcon";
static somId somLId_wpSetProgIcon = &somLMN_wpSetProgIcon;
#define WPProgram_lookup_wpSetProgIcon(somSelf,pfeal) \
    ((( somTD_WPProgram_wpSetProgIcon ) \
	SOM_GetClass(somSelf)->somLookupMethod(somLId_wpSetProgIcon)) \
	    ((WPProgram*)somSelf,pfeal))
#define lookup_wpSetProgIcon WPProgram_lookup_wpSetProgIcon
#endif


#endif       /* SOM_WPProgram_xh */

#ifndef SOM_M_WPProgram_xh
#define SOM_M_WPProgram_xh

class M_WPProgram;

#define M_WPProgram_MajorVersion 1
#define M_WPProgram_MinorVersion 2

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

/* C++ parent defs */
#ifndef SOM_M_WPAbstract_xh
#include <wpabs.xh>
#endif

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

/*
 * Start of bindings for IDL types
 */


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

/*
 * -- M_WPProgram is a metaclass for WPProgram. Make sure WPProgram is known.
 */
class WPProgram;


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

/* The API to the M_WPProgram class object, and the methods it introduces. */
SOMEXTERN struct M_WPProgramClassDataStructure {
	SOMClass *classObject;
} SOMDLINK M_WPProgramClassData;
#define _M_WPProgram M_WPProgramClassData.classObject

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

/*
 * -- Typedefs for M_WPProgram Method Procedures
 */
SOMEXTERN {

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef WPProgram*   SOMLINK somTP_M_WPProgram_somNew(M_WPProgram *somSelf);
typedef somTP_M_WPProgram_somNew *somTD_M_WPProgram_somNew;
}

#endif /* M_WPProgram_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_WPProgram
 */
class M_WPProgram : public M_WPAbstract
{
public:

// M_WPProgram::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_WPProgram) M_WPProgramNewClass(M_WPProgram_MajorVersion,M_WPProgram_MinorVersion);
   return (void*)
      SOM_Resolve(_M_WPProgram,SOMClass,somNewNoInit)
         ((SOMClass *)((void*)_M_WPProgram));
}

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

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

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

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

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


/*
 * Reintroduce inherited methods
 */

/* method: somNew */
WPProgram*  somNew()
{
   return SOM_ResolveD(this,M_WPProgram,SOMClass,somNew)
	(this);
}



};   /* M_WPProgram */



#endif       /* SOM_M_WPProgram_xh */
