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

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


#ifndef SOM_WPProgramFile_xh
#define SOM_WPProgramFile_xh

class WPProgramFile;

#define WPProgramFile_MajorVersion 1
#define WPProgramFile_MinorVersion 2

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

/* C++ parent defs */
#ifndef SOM_WPDataFile_xh
#include <wpdataf.xh>
#endif

#ifndef WPProgramFile_API
#define WPProgramFile_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;
class M_WPDataFile;
class M_WPProgramFile;

/*
 * 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 WPProgramFile Class */
class M_WPProgramFile;
SOMEXTERN M_WPProgramFile * SOMLINK WPProgramFileNewClass(
		integer4 majorVersion,
		integer4 minorVersion);

/* The API to the WPProgramFile class object, and the methods it introduces. */
SOMEXTERN struct WPProgramFileClassDataStructure {
	M_WPProgramFile *classObject;
	somMToken wpAddProgramAssociationPage;
	somMToken wpAddProgramPage;
	somMToken wpAddProgramSessionPage;
	somMToken wpSetProgDetails;
	somMToken wpQueryProgDetails;
	somMToken wpSetProgIcon;
	somMToken wpQueryAssociationFilter;
	somMToken wpQueryAssociationType;
	somMToken wpSetAssociationFilter;
	somMToken wpSetAssociationType;
	somMToken wpQueryProgramAssociations;
	somMToken wpSetProgramAssociations;
	somMToken wpQueryWarnBeforeStart;
	somMToken wpSetWarnBeforeStart;
	somMToken pgflRepParent_wpOpen;
	somMToken RepParent_wpDrop;
	somMToken wpSetDefaultCpSettings;
	somMToken wpSetCpValues;
	somMToken wpQueryCpValues;
	somMToken wpSaveCpState;
	somMToken wpRestoreCpState;
	somMToken wpInitCpData;
	somMToken wpUndoCpSettings;
} SOMDLINK WPProgramFileClassData;
#define _WPProgramFile WPProgramFileClassData.classObject

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

/*
 * -- Typedefs for WPProgramFile Method Procedures
 */
SOMEXTERN {
typedef ULONG   SOMLINK somTP_WPProgramFile_wpAddProgramAssociationPage(WPProgramFile *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPProgramFile_wpAddProgramAssociationPage *somTD_WPProgramFile_wpAddProgramAssociationPage;
typedef BOOL   SOMLINK somTP_WPProgramFile_wpQueryProgDetails(WPProgramFile *somSelf, 
		PPROGDETAILS pProgDetails, 
		PULONG pulSize);
typedef somTP_WPProgramFile_wpQueryProgDetails *somTD_WPProgramFile_wpQueryProgDetails;
typedef BOOL   SOMLINK somTP_WPProgramFile_wpSetProgDetails(WPProgramFile *somSelf, 
		PPROGDETAILS pProgDetails);
typedef somTP_WPProgramFile_wpSetProgDetails *somTD_WPProgramFile_wpSetProgDetails;
typedef ULONG   SOMLINK somTP_WPProgramFile_wpAddProgramPage(WPProgramFile *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPProgramFile_wpAddProgramPage *somTD_WPProgramFile_wpAddProgramPage;
typedef ULONG   SOMLINK somTP_WPProgramFile_wpAddProgramSessionPage(WPProgramFile *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPProgramFile_wpAddProgramSessionPage *somTD_WPProgramFile_wpAddProgramSessionPage;
typedef PSZ   SOMLINK somTP_WPProgramFile_wpQueryAssociationFilter(WPProgramFile *somSelf);
typedef somTP_WPProgramFile_wpQueryAssociationFilter *somTD_WPProgramFile_wpQueryAssociationFilter;
typedef PSZ   SOMLINK somTP_WPProgramFile_wpQueryAssociationType(WPProgramFile *somSelf);
typedef somTP_WPProgramFile_wpQueryAssociationType *somTD_WPProgramFile_wpQueryAssociationType;
typedef BOOL   SOMLINK somTP_WPProgramFile_wpSetAssociationFilter(WPProgramFile *somSelf, 
		PSZ pszFilter);
typedef somTP_WPProgramFile_wpSetAssociationFilter *somTD_WPProgramFile_wpSetAssociationFilter;
typedef BOOL   SOMLINK somTP_WPProgramFile_wpSetAssociationType(WPProgramFile *somSelf, 
		PSZ pszType);
typedef somTP_WPProgramFile_wpSetAssociationType *somTD_WPProgramFile_wpSetAssociationType;
typedef PSZ   SOMLINK somTP_WPProgramFile_wpQueryProgramAssociations(WPProgramFile *somSelf, 
		PBYTE ptr, 
		PSZ pszAssoc, 
		BOOL fFilter);
typedef somTP_WPProgramFile_wpQueryProgramAssociations *somTD_WPProgramFile_wpQueryProgramAssociations;
typedef BOOL   SOMLINK somTP_WPProgramFile_wpSetProgramAssociations(WPProgramFile *somSelf, 
		PSZ pszAssoc, 
		BOOL fFilter);
typedef somTP_WPProgramFile_wpSetProgramAssociations *somTD_WPProgramFile_wpSetProgramAssociations;
typedef BOOL   SOMLINK somTP_WPProgramFile_wpQueryWarnBeforeStart(WPProgramFile *somSelf);
typedef somTP_WPProgramFile_wpQueryWarnBeforeStart *somTD_WPProgramFile_wpQueryWarnBeforeStart;
typedef BOOL   SOMLINK somTP_WPProgramFile_wpSetWarnBeforeStart(WPProgramFile *somSelf, 
		BOOL fWarnBeforeStart);
typedef somTP_WPProgramFile_wpSetWarnBeforeStart *somTD_WPProgramFile_wpSetWarnBeforeStart;
typedef BOOL   SOMLINK somTP_WPProgramFile_wpSetProgIcon(WPProgramFile *somSelf, 
		PFEA2LIST pfeal);
typedef somTP_WPProgramFile_wpSetProgIcon *somTD_WPProgramFile_wpSetProgIcon;
typedef void   SOMLINK somTP_WPProgramFile_wpSetDefaultCpSettings(WPProgramFile *somSelf);
typedef somTP_WPProgramFile_wpSetDefaultCpSettings *somTD_WPProgramFile_wpSetDefaultCpSettings;
typedef void   SOMLINK somTP_WPProgramFile_wpSetCpValues(WPProgramFile *somSelf, 
		ULONG ulSetting, 
		void* ulValue);
typedef somTP_WPProgramFile_wpSetCpValues *somTD_WPProgramFile_wpSetCpValues;
typedef void   SOMLINK somTP_WPProgramFile_wpQueryCpValues(WPProgramFile *somSelf, 
		ULONG ulSetting, 
		void* ulValue);
typedef somTP_WPProgramFile_wpQueryCpValues *somTD_WPProgramFile_wpQueryCpValues;
typedef BOOL   SOMLINK somTP_WPProgramFile_wpSaveCpState(WPProgramFile *somSelf);
typedef somTP_WPProgramFile_wpSaveCpState *somTD_WPProgramFile_wpSaveCpState;
typedef BOOL   SOMLINK somTP_WPProgramFile_wpRestoreCpState(WPProgramFile *somSelf);
typedef somTP_WPProgramFile_wpRestoreCpState *somTD_WPProgramFile_wpRestoreCpState;
typedef void   SOMLINK somTP_WPProgramFile_wpUndoCpSettings(WPProgramFile *somSelf);
typedef somTP_WPProgramFile_wpUndoCpSettings *somTD_WPProgramFile_wpUndoCpSettings;
typedef void   SOMLINK somTP_WPProgramFile_wpInitCpData(WPProgramFile *somSelf);
typedef somTP_WPProgramFile_wpInitCpData *somTD_WPProgramFile_wpInitCpData;

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef M_WPProgramFile*   SOMLINK somTP_WPProgramFile_somGetClass(WPProgramFile *somSelf);
typedef somTP_WPProgramFile_somGetClass *somTD_WPProgramFile_somGetClass;
}

#endif /* WPProgramFile_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 WPProgramFile
 */
class WPProgramFile : public WPDataFile
{
public:

// WPProgramFile::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 (!_WPProgramFile) WPProgramFileNewClass(WPProgramFile_MajorVersion,WPProgramFile_MinorVersion);
   return (void*)
      SOM_Resolve(_WPProgramFile,SOMClass,somNewNoInit)
         ((SOMClass *)((void*)_WPProgramFile));
}

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

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

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

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

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


/*
 * Reintroduce inherited methods
 */

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



};   /* WPProgramFile */



/*
 * 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 WPProgramFile_lookup_wpAddProgramAssociationPage(somSelf,hwndNotebook) \
    ((( somTD_WPProgramFile_wpAddProgramAssociationPage ) \
	SOM_GetClass(somSelf)->somLookupMethod(somLId_wpAddProgramAssociationPage)) \
	    ((WPProgramFile*)somSelf,hwndNotebook))
#define lookup_wpAddProgramAssociationPage WPProgramFile_lookup_wpAddProgramAssociationPage
#endif


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


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


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


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


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


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


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


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


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


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


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


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


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


#endif       /* SOM_WPProgramFile_xh */

#ifndef SOM_M_WPProgramFile_xh
#define SOM_M_WPProgramFile_xh

class M_WPProgramFile;

#define M_WPProgramFile_MajorVersion 1
#define M_WPProgramFile_MinorVersion 2

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

/* C++ parent defs */
#ifndef SOM_M_WPDataFile_xh
#include <wpdataf.xh>
#endif

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

/*
 * Start of bindings for IDL types
 */


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

/*
 * -- M_WPProgramFile is a metaclass for WPProgramFile. Make sure WPProgramFile is known.
 */
class WPProgramFile;


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

/* The API to the M_WPProgramFile class object, and the methods it introduces. */
SOMEXTERN struct M_WPProgramFileClassDataStructure {
	SOMClass *classObject;
} SOMDLINK M_WPProgramFileClassData;
#define _M_WPProgramFile M_WPProgramFileClassData.classObject

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

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

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef WPProgramFile*   SOMLINK somTP_M_WPProgramFile_somNew(M_WPProgramFile *somSelf);
typedef somTP_M_WPProgramFile_somNew *somTD_M_WPProgramFile_somNew;
}

#endif /* M_WPProgramFile_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_WPProgramFile
 */
class M_WPProgramFile : public M_WPDataFile
{
public:

// M_WPProgramFile::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_WPProgramFile) M_WPProgramFileNewClass(M_WPProgramFile_MajorVersion,M_WPProgramFile_MinorVersion);
   return (void*)
      SOM_Resolve(_M_WPProgramFile,SOMClass,somNewNoInit)
         ((SOMClass *)((void*)_M_WPProgramFile));
}

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

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

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

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

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


/*
 * Reintroduce inherited methods
 */

/* method: somNew */
WPProgramFile*  somNew()
{
   return SOM_ResolveD(this,M_WPProgramFile,SOMClass,somNew)
	(this);
}



};   /* M_WPProgramFile */



#endif       /* SOM_M_WPProgramFile_xh */
