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

/*
 *  Copyright (c) IBM Corporation  1994 - All Rights Reserved
 * 
 *  WPDSERV - Workplace Shell DSOM Server Class DLL
 */


#ifndef SOM_WPDServer_xh
#define SOM_WPDServer_xh

class WPDServer;

#define WPDServer_MajorVersion 0
#define WPDServer_MinorVersion 0

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

/* C++ parent defs */
#ifndef SOM_SOMDServer_xh
#include <somdserv.xh>
#endif

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

/*
 * Start of bindings for IDL types
 */

class SOMClass;
class SOMObject;
class Container;
class SOMDObject;
class WPObject;

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

/*
 * Passthru lines: File: "C.xh", "after"
 */
#define INCL_WIN
#include <os2.h>


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

/* The API to the WPDServer class object, and the methods it introduces. */
SOMEXTERN struct WPDServerClassDataStructure {
	SOMClass *classObject;
} SOMDLINK WPDServerClassData;
#define _WPDServer WPDServerClassData.classObject

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

/*
 * -- Typedefs for WPDServer Method Procedures
 */
SOMEXTERN {
}

#endif /* WPDServer_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 WPDServer
 */
class WPDServer : public SOMDServer
{
public:

// WPDServer::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 (!_WPDServer) WPDServerNewClass(WPDServer_MajorVersion,WPDServer_MinorVersion);
   return (void*)
      SOM_Resolve(_WPDServer,SOMClass,somNewNoInit)
         ((SOMClass *)((void*)_WPDServer));
}

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

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

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

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

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



};   /* WPDServer */



#endif       /* SOM_WPDServer_xh */
