
/*
 * This file was generated by the SOM Compiler.
 * FileName: penbtndv.h.
 * Generated using:
 *     SOM Precompiler spc: 1.22
 *     SOM Emitter emith: 1.11
 */

/*
 * 
 *  SCC: @(#) 71 4/12/93 12:02:47 1.3 @(#)
 *  Module Header
 * 
 *  Module Name: PENBTNDV
 * 
 *  OS/2 Presentation Manager Workplace class definitions
 * 
 *  Copyright (c) International Business Machines Corporation 1992
 * 
 */


#ifndef penbtndv_h
#define penbtndv_h


#include <som.h>

/*
 * Define the class name as an object type
 */
#ifndef PenButtonDevice
#define PenButtonDevice SOMAny
#endif
#include "wpabs.h"

/*
 * Passthru lines: File: "C.h", "after"
 */

   #define MAXBUTTONNAME        20

   typedef struct _PENEVENTDATA
   {
        PVOID   pReserved1;
        HMODULE hModule;
        ULONG   ulResourceId;
        CHAR    pszName[MAXBUTTONNAME];
   } PENEVENTDATA, *PPENEVENTDATA;


#define PenButtonDevice_MajorVersion 1
#define PenButtonDevice_MinorVersion 1

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define PenButtonDeviceNewClass Penbtnc
#pragma linkage(Penbtnc, system)
#define PenButtonDeviceClassData Penbtnd
#define PenButtonDeviceCClassData Penbtnx
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define PenButtonDevice_classObj PenButtonDeviceClassData.classObject
#define _PenButtonDevice PenButtonDevice_classObj

/*
 * New and Renew macros for PenButtonDevice
 */
#define _PenButtonDeviceNew() (_somNew(PenButtonDeviceClassData.classObject))
#define PenButtonDeviceNew() \
	( PenButtonDeviceClassData.classObject \
		? _PenButtonDeviceNew() \
		: ( PenButtonDeviceNewClass(PenButtonDevice_MajorVersion, PenButtonDevice_MinorVersion), _PenButtonDeviceNew() ) )
#define PenButtonDeviceRenew(buf) \
	( _somRenew(PenButtonDeviceClassData.classObject, buf) )

/*
 * Override method: wpAddSettingsPages
 */
#define PenButtonDevice_wpAddSettingsPages(somSelf,hwndNotebook) \
	WPObject_wpAddSettingsPages(somSelf,hwndNotebook)

/*
 * Override method: wpSetup
 */
#define PenButtonDevice_wpSetup(somSelf,pszSetupString) \
	WPObject_wpSetup(somSelf,pszSetupString)

/*
 * Override method: wpSaveState
 */
#define PenButtonDevice_wpSaveState(somSelf) \
	WPObject_wpSaveState(somSelf)

/*
 * Override method: wpRestoreState
 */
#define PenButtonDevice_wpRestoreState(somSelf,ulReserved) \
	WPObject_wpRestoreState(somSelf,ulReserved)

/*
 * Override method: wpInitData
 */
#define PenButtonDevice_wpInitData(somSelf) \
	WPObject_wpInitData(somSelf)

/*
 * Override method: wpUnInitData
 */
#define PenButtonDevice_wpUnInitData(somSelf) \
	WPObject_wpUnInitData(somSelf)

/*
 * New Method: penAddButtonsMappingsPage
 */
typedef ULONG    SOMLINK somTP_PenButtonDevice_penAddButtonsMappingsPage(PenButtonDevice *somSelf,
		HWND hwndNotebook);
#pragma linkage(somTP_PenButtonDevice_penAddButtonsMappingsPage, system)
typedef somTP_PenButtonDevice_penAddButtonsMappingsPage *somTD_PenButtonDevice_penAddButtonsMappingsPage;
#define somMD_PenButtonDevice_penAddButtonsMappingsPage "----"
#define PenButtonDevice_penAddButtonsMappingsPage(somSelf,hwndNotebook) \
    (SOM_Resolve(somSelf, PenButtonDevice, penAddButtonsMappingsPage) \
	(somSelf,hwndNotebook))
#define _penAddButtonsMappingsPage PenButtonDevice_penAddButtonsMappingsPage

/*
 * New Method: penQueryButtonData
 */
typedef ULONG    SOMLINK somTP_PenButtonDevice_penQueryButtonData(PenButtonDevice *somSelf,
		PPENEVENTDATA pPenEventData);
#pragma linkage(somTP_PenButtonDevice_penQueryButtonData, system)
typedef somTP_PenButtonDevice_penQueryButtonData *somTD_PenButtonDevice_penQueryButtonData;
#define somMD_PenButtonDevice_penQueryButtonData "----"
#define PenButtonDevice_penQueryButtonData(somSelf,pPenEventData) \
    (SOM_Resolve(somSelf, PenButtonDevice, penQueryButtonData) \
	(somSelf,pPenEventData))
#define _penQueryButtonData PenButtonDevice_penQueryButtonData

/*
 * New Method: penSetButtonData
 */
typedef BOOL    SOMLINK somTP_PenButtonDevice_penSetButtonData(PenButtonDevice *somSelf,
		PPENEVENTDATA pPenEventData);
#pragma linkage(somTP_PenButtonDevice_penSetButtonData, system)
typedef somTP_PenButtonDevice_penSetButtonData *somTD_PenButtonDevice_penSetButtonData;
#define somMD_PenButtonDevice_penSetButtonData "----"
#define PenButtonDevice_penSetButtonData(somSelf,pPenEventData) \
    (SOM_Resolve(somSelf, PenButtonDevice, penSetButtonData) \
	(somSelf,pPenEventData))
#define _penSetButtonData PenButtonDevice_penSetButtonData

/*
 * Declare the class creation procedure
 */
SOMEXTERN SOMAny * SOMLINK PenButtonDeviceNewClass(integer4 scemajorVersion,
		integer4 sceminorVersion);
#pragma linkage(PenButtonDeviceNewClass, system)

/*
 * Declare the class data structure
 */
SOMEXTERN struct PenButtonDeviceClassDataStructure {
	SOMAny *classObject;
	somMToken penAddButtonsMappingsPage;
	somMToken penQueryButtonData;
	somMToken penSetButtonData;
	somMToken penQueryDriverName;
	somMToken penQueryDeviceName;
	somMToken penQueryButtonDeviceName;
	somMToken penQueryBarrelCount;
	somMToken penSetDriverName;
	somMToken penSetDeviceName;
	somMToken penSetButtonDeviceName;
	somMToken penSetBarrelCount;
} PenButtonDeviceClassData;

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct PenButtonDeviceCClassDataStructure {
	somMethodTab *parentMtab;
	somDToken instanceDataToken;
} PenButtonDeviceCClassData;

#endif       /* penbtndv_h */

/*
 * This file was generated by the SOM Compiler.
 * FileName: penbtndv.h.
 * Generated using:
 *     SOM Precompiler spc: 1.22
 *     SOM Emitter emith: 1.11
 */

#ifndef penbtndv_mh
#define penbtndv_mh


/*
 * Define the class name as an object type
 */
#ifndef M_PenButtonDevice
#define M_PenButtonDevice SOMAny
#endif

#define M_PenButtonDevice_MajorVersion 1
#define M_PenButtonDevice_MinorVersion 1

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define M_PenButtonDeviceNewClass Penbtnc
#pragma linkage(Penbtnc, system)
#define M_PenButtonDeviceClassData Penbtnd
#define M_PenButtonDeviceCClassData Penbtnx
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define M_PenButtonDevice_classObj M_PenButtonDeviceClassData.classObject
#define _M_PenButtonDevice M_PenButtonDevice_classObj

/*
 * New and Renew macros for M_PenButtonDevice
 */
#define _M_PenButtonDeviceNew() (_somNew(M_PenButtonDeviceClassData.classObject))
#define M_PenButtonDeviceNew() \
	( M_PenButtonDeviceClassData.classObject \
		? _M_PenButtonDeviceNew() \
		: ( M_PenButtonDeviceNewClass(M_PenButtonDevice_MajorVersion, M_PenButtonDevice_MinorVersion), _M_PenButtonDeviceNew() ) )
#define M_PenButtonDeviceRenew(buf) \
	( _somRenew(M_PenButtonDeviceClassData.classObject, buf) )

/*
 * Override method: wpclsInitData
 */
#define M_PenButtonDevice_wpclsInitData(somSelf) \
	M_WPObject_wpclsInitData(somSelf)

/*
 * Override method: wpclsNew
 */
#define M_PenButtonDevice_wpclsNew(somSelf,pszTitle,pszSetupEnv,Folder,fLock) \
	M_WPObject_wpclsNew(somSelf,pszTitle,pszSetupEnv,Folder,fLock)

/*
 * New Method: penclsQueryButtonData
 */
typedef ULONG    SOMLINK somTP_M_PenButtonDevice_penclsQueryButtonData(M_PenButtonDevice *somSelf,
		PPENEVENTDATA pPenEventData);
#pragma linkage(somTP_M_PenButtonDevice_penclsQueryButtonData, system)
typedef somTP_M_PenButtonDevice_penclsQueryButtonData *somTD_M_PenButtonDevice_penclsQueryButtonData;
#define somMD_M_PenButtonDevice_penclsQueryButtonData "----"
#define M_PenButtonDevice_penclsQueryButtonData(somSelf,pPenEventData) \
    (SOM_Resolve(somSelf, M_PenButtonDevice, penclsQueryButtonData) \
	(somSelf,pPenEventData))
#define _penclsQueryButtonData M_PenButtonDevice_penclsQueryButtonData

/*
 * Declare the class creation procedure
 */
SOMEXTERN SOMAny * SOMLINK M_PenButtonDeviceNewClass(integer4 scemajorVersion,
		integer4 sceminorVersion);
#pragma linkage(M_PenButtonDeviceNewClass, system)

/*
 * Declare the class data structure
 */
SOMEXTERN struct M_PenButtonDeviceClassDataStructure {
	SOMAny *classObject;
	somMToken penclsQueryButtonData;
} M_PenButtonDeviceClassData;

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct M_PenButtonDeviceCClassDataStructure {
	somMethodTab *parentMtab;
	somDToken instanceDataToken;
} M_PenButtonDeviceCClassData;

#endif       /* penbtndv_h */
