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

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


#ifndef SOM_WPSound_xh
#define SOM_WPSound_xh

class WPSound;

#define WPSound_MajorVersion 1
#define WPSound_MinorVersion 2

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

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

#ifndef WPSound_API
#define WPSound_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_WPSound;

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

/* A procedure to create the WPSound Class */
class M_WPSound;
SOMEXTERN M_WPSound * SOMLINK WPSoundNewClass(
		integer4 majorVersion,
		integer4 minorVersion);

/* The API to the WPSound class object, and the methods it introduces. */
SOMEXTERN struct WPSoundClassDataStructure {
	M_WPSound *classObject;
	somMToken wpAddSoundWarningBeepPage;
	somMToken wpAddSoundSchemePage;
} SOMDLINK WPSoundClassData;
#define _WPSound WPSoundClassData.classObject

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

/*
 * -- Typedefs for WPSound Method Procedures
 */
SOMEXTERN {
typedef ULONG   SOMLINK somTP_WPSound_wpAddSoundWarningBeepPage(WPSound *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPSound_wpAddSoundWarningBeepPage *somTD_WPSound_wpAddSoundWarningBeepPage;
typedef ULONG   SOMLINK somTP_WPSound_wpAddSoundSchemePage(WPSound *somSelf, 
		HWND hwndNotebook);
typedef somTP_WPSound_wpAddSoundSchemePage *somTD_WPSound_wpAddSoundSchemePage;

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef M_WPSound*   SOMLINK somTP_WPSound_somGetClass(WPSound *somSelf);
typedef somTP_WPSound_somGetClass *somTD_WPSound_somGetClass;
}

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

// WPSound::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 (!_WPSound) WPSoundNewClass(WPSound_MajorVersion,WPSound_MinorVersion);
   return (void*)
      SOM_Resolve(_WPSound,SOMClass,somNewNoInit)
         ((SOMClass *)((void*)_WPSound));
}

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

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

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

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

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


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


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


/*
 * Reintroduce inherited methods
 */

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



};   /* WPSound */



#endif       /* SOM_WPSound_xh */

#ifndef SOM_M_WPSound_xh
#define SOM_M_WPSound_xh

class M_WPSound;

#define M_WPSound_MajorVersion 1
#define M_WPSound_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_WPSound_API
#define M_WPSound_API
/*
 * -- The Class API
 */

/*
 * Start of bindings for IDL types
 */


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

/*
 * -- M_WPSound is a metaclass for WPSound. Make sure WPSound is known.
 */
class WPSound;


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

/* The API to the M_WPSound class object, and the methods it introduces. */
SOMEXTERN struct M_WPSoundClassDataStructure {
	SOMClass *classObject;
} SOMDLINK M_WPSoundClassData;
#define _M_WPSound M_WPSoundClassData.classObject

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

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

/*
 * -- Typedefs for Reintroduced Wrapper Methods
 */
typedef WPSound*   SOMLINK somTP_M_WPSound_somNew(M_WPSound *somSelf);
typedef somTP_M_WPSound_somNew *somTD_M_WPSound_somNew;
}

#endif /* M_WPSound_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_WPSound
 */
class M_WPSound : public M_WPAbstract
{
public:

// M_WPSound::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_WPSound) M_WPSoundNewClass(M_WPSound_MajorVersion,M_WPSound_MinorVersion);
   return (void*)
      SOM_Resolve(_M_WPSound,SOMClass,somNewNoInit)
         ((SOMClass *)((void*)_M_WPSound));
}

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

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

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

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

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


/*
 * Reintroduce inherited methods
 */

/* method: somNew */
WPSound*  somNew()
{
   return SOM_ResolveD(this,M_WPSound,SOMClass,somNew)
	(this);
}



};   /* M_WPSound */



#endif       /* SOM_M_WPSound_xh */
