// Module Header // // Module Name: WPDISK // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPABS // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPOBJECT // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMObject: System Object Model root class interface SOMClass; interface SOMObject; typedef long int; typedef octet uchar_t; typedef unsigned long size_t; #define _SOMFOREIGN_DEFINED_ #ifdef __SOMIDL__ typedef void * SOMFOREIGN; #else typedef unsigned long SOMFOREIGN; #endif typedef SOMFOREIGN FILE; #pragma modifier FILE: impctx = C, length = 0; typedef SOMFOREIGN va_list; #pragma modifier va_list: impctx = C; typedef SOMFOREIGN SOMHANDLE; #pragma modifier SOMHANDLE: impctx = SOM; typedef int somToken; typedef SOMFOREIGN somId; #pragma modifier somId: impctx = SOM; enum TCKind { tk_null, tk_void, tk_short, tk_long, tk_ushort, tk_ulong, tk_float, tk_double, tk_boolean, tk_char, tk_octet, tk_any, tk_TypeCode, tk_Principal, tk_objref, tk_struct, tk_union, tk_enum, tk_string, tk_sequence, tk_array, tk_pointer, tk_self, tk_foreign }; typedef char integer1; typedef short integer2; typedef unsigned short uinteger2; typedef long integer4; typedef unsigned long uinteger4; typedef float float4; typedef double float8; typedef string zString; typedef string fString; // The following typedefs are based on somapi.h and somcorba.h, which // define the published API form of internal SOM data structures. // We provide these typedefs here in their IDL form primarily to // satisfy the IDL compiler, which requires that all methods declared // using IDL have known argument types. Also, as a result of this // approach, the interface repository will contain the "public" types // for SOM internal data structures -- not the actual types. typedef somToken somMethodProc; typedef somToken somMethodPtr; struct somMethodTab { SOMClass classObject; }; struct SOMAny { somMethodTab mtab; }; typedef somToken somMToken; typedef somToken somMLocator; typedef somToken somDToken; typedef somToken somDLocator; typedef somToken somClassInfo; typedef somToken SOMTokBuf; typedef somToken somInitCtrl; typedef somToken somInitInfo; typedef somToken somDestructCtrl; typedef somToken somDestructInfo; typedef somToken somAssignCtrl; typedef somToken somAssignInfo; typedef unsigned long somRdAppType; struct somMethodInfo { somRdAppType callType; long va_listSize; unsigned long float_map; } ; typedef struct somMethodDataStruct { somId id; long type; somId descriptor; somMToken mToken; somMethodPtr method; somToken shared; } somMethodData; struct somClassList { SOMClass cls; //somClassList next; }; typedef somClassList somClasses; struct somMethodTabList { somMethodTab mtab; //somMethodTabList next; }; typedef somMethodTabList somMethodTabs; typedef somMethodTabList somParentMtabStructPtr; struct somClassDataStructure { SOMClass classObject; somToken tokens[1]; }; struct somCClassDataStructure { somMethodTabs parentMtab; somDToken instanceDataToken; somMethodPtr ptrs[1]; }; typedef somCClassDataStructure somCClassDataStructurePtr; typedef octet somBooleanVector; // exception enum constants found in somcorba.h enum exception_type { NO_EXCEPTION, USER_EXCEPTION, SYSTEM_EXCEPTION }; struct Environment { exception_type major; // use somcorba.h exception_type values octet opaque_data[12]; // #2990 }; // // //------------------------------------------------------------- // SOMObject Interface Definition // interface SOMObject // This is the SOM root class, all SOM classes must be descended from // . has no instance data so there is no // per-instance cost to to being descended from it. { // a sequence of SOM Objects typedef sequence SOMObjectSequence; // a sequence of booleans. typedef sequence BooleanSequence; // a structure to describe an object-related offset, and // a sequence of class-related offsets struct somObjectOffset { SOMObject obj; long offset; }; typedef sequence somObjectOffsets; void somDefaultInit(inout somInitCtrl ctrl); // A default initializer for a SOM object. Passing a null ctrl // indicates to the receiver that its class is the class of the // object being initialized, whereby the initializer will determine // an appropriate control structure. void somDestruct(in octet doFree, inout somDestructCtrl ctrl); // The default destructor for a SOM object. A nonzero // indicates that the object storage should be freed by the // object's class (via somDeallocate) after uninitialization. // As with somDefaultInit, a null ctrl can be passed. void somDefaultCopyInit(inout somInitCtrl ctrl, in SOMObject fromObj); // A default copy constructor. Use this to make copies of objects for // calling methods with "by-value" argument semantics. SOMObject somDefaultAssign(inout somAssignCtrl ctrl, in SOMObject fromObj); // A default assignment operator. Use this to "assign" the state of one // object to another. void somDefaultConstCopyInit(inout somInitCtrl ctrl, in SOMObject fromObj); // A default copy constructor that uses a const fromObj. void somDefaultVCopyInit(inout somInitCtrl ctrl, in SOMObject fromObj); // A default copy constructor that uses a volatile fromObj. void somDefaultConstVCopyInit(inout somInitCtrl ctrl, in SOMObject fromObj); // A default copy constructor that uses a const volatile fromObj. SOMObject somDefaultConstAssign(inout somAssignCtrl ctrl, in SOMObject fromObj); // A default assignment operator that uses a const fromObj. SOMObject somDefaultVAssign(inout somAssignCtrl ctrl, in SOMObject fromObj); // A default assignment operator that uses a volatile fromObj. SOMObject somDefaultConstVAssign(inout somAssignCtrl ctrl, in SOMObject fromObj); // A default assignment operator that uses a const volatile fromObj. void somInit(); // Obsolete but still supported. Override somDefaultInit instead of somInit. void somFree(); // Obsolete but still supported. Use somDestruct with a nonzero // instead. void somUninit(); // Obsolete but still supported. Override somDestruct instead of somUninit. SOMClass somGetClass(); // Return the receiver's class. string somGetClassName(); // Return the name of the receiver's class. long somGetSize(); // Return the size of the receiver. boolean somIsA(in SOMClass aClassObj); // Returns 1 (true) if the receiver responds to methods // introduced by , and 0 (false) otherwise. boolean somIsInstanceOf(in SOMClass aClassObj); // Returns 1 (true) if the receiver is an instance of // and 0 (false) otherwise. boolean somRespondsTo(in somId mId); // Returns 1 (true) if the indicated method can be invoked // on the receiver and 0 (false) otherwise. boolean somDispatch(out somToken retValue, in somId methodId, in va_list ap); // This method provides a generic, class-specific dispatch mechanism. // It accepts as input a pointer to the memory area to be // loaded with the result of dispatching the method indicated by // using the arguments in . contains the object // on which the method is to be invoked as the first argument. boolean somClassDispatch(in SOMClass clsObj, out somToken retValue, in somId methodId, in va_list ap); // Like somDispatch, but method resolution for static methods is done // according to the clsObj instance method table. boolean somCastObj(in SOMClass cls); // cast the receiving object to cls (which must be an ancestor of the // objects true class. Returns true on success. boolean somResetObj(); // reset an object to its true class. Returns true always. void somDispatchV(in somId methodId, in somId descriptor, in va_list ap); // Obsolete. Use somDispatch instead. long somDispatchL(in somId methodId, in somId descriptor, in va_list ap); // Obsolete. Use somDispatch instead. void somDispatchA(in somId methodId, in somId descriptor, in va_list ap); // Obsolete. Use somDispatch instead. double somDispatchD(in somId methodId, in somId descriptor, in va_list ap); // Obsolete. Use somDispatch instead. SOMObject somPrintSelf(); // Uses to write a brief string with identifying // information about this object. The default implementation just gives // the object's class name and its address in memory. // is returned. void somDumpSelf(in long level); // Uses to write a detailed description of this object // and its current state. // // indicates the nesting level for describing compound objects // it must be greater than or equal to zero. All lines in the // description will be preceeded by <2*level> spaces. // // This routine only actually writes the data that concerns the object // as a whole, such as class, and uses to describe // the object's current state. This approach allows readable // descriptions of compound objects to be constructed. // // Generally it is not necessary to override this method, if it is // overriden it generally must be completely replaced. void somDumpSelfInt(in long level); // Uses to write in the current state of this object. // Generally this method will need to be overridden. When overriding // it, begin by calling the parent class form of this method and then // write in a description of your class's instance data. This will // result in a description of all the object's instance data going // from its root ancestor class to its specific class. }; // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMObject: System Object Model root class interface SOMClass : SOMObject // // This is the SOM metaclass. That is, the instances of this class // are class objects. When the SOM environment is created an instance // of SOMClass is created and a pointer to it is placed in the external // data location (SOMClassClassData.classObject). Bindings provide the // macro _SOMClass for this expression. _SOMClass is unique in that it // is its own class object. I.e., _SOMClass == _somGetClass(_SOMClass). // SOMClass can be subclassed just like any SOM class. The subclasses // of SOMClass are new metaclasses and can generate class objects with // different implementations than those produced by _SOMClass. // // An important rule for metaclass programming is that no methods // introduced by SOMClass should ever be overridden. While this // limits the utility of metaclass programming in SOM, it guarantees // that SOM will operate correctly. Special class frameworks may be // available from IBM to alleviate this restriction. // { typedef sequence somTokenSequence; // a (generic) sequence of somTokens typedef sequence SOMClassSequence; // a sequence of classes struct somOffsetInfo { SOMClass cls; long offset; }; // a structure to describe a class-related offset typedef sequence somOffsets; // a sequence of class-related offsets typedef sequence somIdSequence; // a sequence of somIds readonly attribute long somDataAlignment; // The alignment required for the instance data structure // introduced by the receiving class. readonly attribute somOffsets somInstanceDataOffsets; // A sequence of the instance data offsets for all classes used in // the derivation of the receiving class (including the receiver). attribute SOMClassSequence somDirectInitClasses; // The ancestors whose initializers the receiving // class wants to directly invoke. SOMObject somNew(); // Uses SOMMalloc to allocate storage for a new instance of the // receiving class, and then calls somRenewNoInitNoZero to load the // new object's method table pointer. Then somDefaultInit is called to // initialize the new object. Note: If the instance is a class object, // somInitMIClass must then be invoked to declare parents and // initialize the class's instance method table. Upon failure, NULL // is returned. SOMObject somNewNoInit(); // Equivalent to somNew except that somDefaultInit is not called. SOMObject somRenew(in int obj); // Equivalent to somNew except that storage is not allocated. // is taken as the address of the new object. SOMObject somRenewNoInit(in int obj); // Equivalent to somRenew except that somDefaultInit is not called. SOMObject somRenewNoZero(in int obj); // Equivalent to somRenew except that memory is not zeroed out. SOMObject somRenewNoInitNoZero(in int obj); // The purpose of this method is to load an object's method table. // The SOM API requires that somRenewNoInitNoZero always be // called when creating a new object whose metaclass is not SOMClass. // This is because metaclasses must be guaranteed that they can use // somRenewNoInitNoZero to track object creation if this is desired. string somAllocate(in long size); // Allocates memory to hold an object and returns a pointer to this memory. // This is a nonstatic method, and cannot be overridden. The default // implementation calls SOMMalloc, but a class designer can specify a // different implementation using the somallocate modifier in IDL. The // allocator takes the same parameters as this method. void somDeallocate(in string memptr); // Zeros out the method table pointer stored in the word pointed to by // memptr, and then deallocates the block of memory pointed to by memptr. // This is a nonstatic method and cannot be overridden. The default // deallocator called is SOMFree, but a class designer can specify a // different deallocator using the somdeallocate modifier in IDL. The // deallocator takes the same parameters as this method. readonly attribute somMethodProc somClassAllocate; // The memory allocation routine used by somAllocate. Provided in this // form to support array allocation. readonly attribute somMethodProc somClassDeallocate; // The memory allocation routine called by somDeallocate. Provided in // this form to support array deallocation. somBooleanVector somGetInstanceInitMask(out somInitCtrl ctrl); // Loads a structure used to control calls to initializers. // Computed when first requested (using the somDirectedInitClasses // attribute) and then cached. somBooleanVector somGetInstanceDestructionMask(out somDestructCtrl ctrl); // Loads a structure used to control calls to somDestruct. // Computed at the same time as somInstanceConstructionMask somBooleanVector somGetInstanceAssignmentMask(out somAssignCtrl ctrl); // Loads a structure used to control calls to assignment ops. // Computed at the same time as somInstanceConstructionMask void somInitClass(in string className, in SOMClass parentClass, in long dataSize, in long maxStaticMethods, in long majorVersion, in long minorVersion); // somInitClass is obsolete, and should no longer be used. The SOM 2.0 // kernel provides special handling for redispatch stubs in the case // of SOM 1.0 classes, and use of this method is what tells the kernel // that old-style redispatch stubs will be registered. void somInitMIClass(in long inherit_vars, in string className, in SOMClassSequence parentClasses, in long dataSize, in long dataAlignment, in long maxStaticMethods, in long majorVersion, in long minorVersion); // somInitMIClass implements the second phase of dynamic class creation: // inheritance of interface and possibly implementation (instance // variables) by suitable initialization of (a class object). // // For somInitMIClass, the inherit_vars argument controls whether abstract // or implementation inheritance is used. Inherit_vars is a 32 bit // bit-vector. Implementation is inherited from parent i iff the bit // 1<=32. // On a class-by-class basis, for each class ancestor, implementation // inheritance always takes precidence over abstract inheritance. This is // necessary to guarantee that procedures supporting parent method calls // (available on non-abstract parents) are always supported by parent // instance variables. // // is a string containing the class name. A copy is made, so // the string may be freed upon return to the caller if this is desired. // // is a SOMClassSequence containing pointers to the // parent classes. somInitMIClass makes a copy of this, so it may // be freed upon return to the caller if this is desired. // // is the space needed for the instance variables // introduced by this class. // // specifies the desired byte alignment for instance // data introduced by this class. A value of 0 selects a system-wide default; // any other argument is taken as the desired byte alignment multiple. Thus, // for example, even if a byte multiple of 8 is needed for double precision // values on a given system (so 8 is the default), a class whose instance data // doesn't require this can indicate otherwise. If A is the next memory // address available for holding instance data, the address that will be // used is A + (A mod byte-alignment). // // is the maximum number of static methods that will be // added to the initialized class using addStaticMethod. // // indicates the major version number for this // implementation of the class definition, and // indicates the minor version number. somMToken somAddStaticMethod(in somId methodId, in somId methodDescriptor, in somMethodPtr method, in somMethodPtr redispatchStub, in somMethodPtr applyStub); // Adds the indicated method, creating and returning a new method token. // // is the somId for an identifier that can be used // to access signature information about the method from an interface // repository. // // is the actual method procedure for this method // // is a procedure with the same calling sequence as // that invokes somDispatch for the method. // // is a procedure used to support somApply. void somAddDynamicMethod(in somId methodId, in somId methodDescriptor, in somMethodPtr method, in somMethodPtr applyStub); // Adds the indicated method to the class's name lookup list. // If this happens to override a static method then this operation is // equivalent to and the and // arguments are ignored (the overridden method's values // will be used). // // is the somId of a string describing the calling // sequence to this method as described in // defined in the SOMObject class definition. // // is the actual method procedure for this method // // is a procedure that takes a standard variable argument // list data structure applies it to its target object by calling // with arguments derived from the data structure. Its // calling sequence is the same as the calling sequence of the // dispatch methods defined in SOMObject. This stub is used in the // support of the dispatch methods used in some classes. In classes // where the dispatch functions do not need such a function this // parameter may be null. void somOverrideSMethod(in somId methodId, in somMethodPtr method); // This method can be used instead of or // when it is known that the class' parent // class already supports this method. This call does not require the // method descriptor and stub methods that the others do. void somClassReady(); // This method is invoked when all of the static initialization for // the class has been finished. The default implementation simply // registers the newly constructed class with the SOMClassMgr. somMethodPtr somGetApplyStub(in somId methodId); // Returns the apply stub associated with the specified method, // if one exists; otherwise NULL is returned. This method is obsolete, // and retained for binary compatability. In SOMr2, users never access // apply stubs directly; The function somApply is used to invoke apply // stubs. See somApply documentation for further information on apply // stubs, and see somAddStaticMethod documentation for information // on how apply stubs are registered by class implementations. somClassDataStructure somGetClassData(); void somSetClassData(in somClassDataStructure cds); // The class' pointer to the static ClassData structure. somMethodTab somGetClassMtab(); // A pointer to the method table used by instances of this class. This // method was misnamed; it should have been called somGetInstanceMtab. long somGetInstanceOffset(); // Returns the offset of instance data introduced by the receiver in // an instance of the receiver. This method is obsolete and not useful in // multiple-inheritance situations. The attribute somInstanceDataOffsets // replaces this method. long somGetInstancePartSize(); // The size in bytes of the instance data introduced by the receiving // class. long somGetInstanceSize(); // The total size of an instance of the receiving class. somDToken somGetInstanceToken(); // A data token that identifies the introduced portion of this class // within itself or any derived class. This token can be subsequently // passed to the run-time somDataResolve function to locate the instance // data introduced by this class in any object derived from this class. somDToken somGetMemberToken(in long memberOffset, in somDToken instanceToken); // Returns a data token that for the data member at offset // "memberOffset" within the introduced portion of the class identified // by instanceToken. The instance token must have been obtained from a // previous invocation of somGetInstanceToken. The returned member // token can be subsequently passed to the run-time somDataResolve // function to locate the data member. boolean somGetMethodData(in somId methodId, out somMethodData md); // Sets the fields in the method descriptor block, , to // information about the method. 1 (true) is returned if the method is // supported by this object and 0 (false) otherwise. The id field in // the method descriptor block will also be set to NULL. somMethodProc somGetRdStub(in somId methodId); // Returns a redispatch stub for the indicated method, if possible. // If not possible (because a valid redispatch stub has not been // registered, and there is insufficient information to dynamically // construct one), then a NULL is returned. somId somGetMethodDescriptor(in somId methodId); // Returns the method descriptor for the indicated method. If // this object does not support the indicated method then NULL is // returned. long somGetMethodIndex(in somId id); // Returns the index for the specified method. (A number that may // change if any methods are added or deleted to this class object or // any of its ancestors). This number is the basis for other calls to // get info about the method. Indexes start at 0. A -1 is returned if // the method cannot be found. somMToken somGetMethodToken(in somId methodId); // Returns the specified method's access token. This token can then // be passed to method resolution routines, which use the token // to select a method pointer from a method table. string somGetName(); // This object's class name as a NULL terminated string. boolean somGetNthMethodData(in long n, out somMethodData md); // loads *md with the method data associated with the the nth method, // or NULL if there is no such method. Returns true is successful; // false otherwise. somId somGetNthMethodInfo(in long n, out somId descriptor); // Returns the id of the th method if one exists and NULL // otherwise. // // The ordering of the methods is unpredictable, but will not change // unless some change is made to the class or one of its ancestor classes. // // See CORBA documentation for info on method descriptors. long somGetNumMethods(); // The number of methods currently supported by this class, // including inherited methods (both static and dynamic). long somGetNumStaticMethods(); // The number of static methods that this class has. Can // be used by a child class when initializing its method table. SOMClass somGetParent(); // Returns the parent class of self (along its "left-hand" derivation // path), if one exists and NULL otherwise. SOMClassSequence somGetParents(); // The parent classes of self. somMethodTabs somGetPClsMtab(); // Returns a list of the method tables of this class's parent classes in the // specific format required by somParentNumResolve (for making parent method // calls. The first entry on the list is actually the method table of the // receiving class. Because the CClassData structure contains this list, the // method table for any class with a CClassData structure is statically // available. This method now returns a list because older SI emitters load // CClassData.parentMtab with the result of this call, and the new runtime // requires a list of classes in that position. somMethodTabs somGetPClsMtabs(); // Returns a list of the method tables of this class's parent classes in the // specific format required by somParentNumResolve (for making parent method // calls. The first entry on the list is actually the method table of the // receiving class. Because the CClassData structure contains this list, the // method table for any class with a CClassData structure is statically // available. void somGetVersionNumbers (out long majorVersion, out long minorVersion); // Returns the class' major and minor version numbers in the corresponding // output parameters. boolean somSetMethodDescriptor(in somId methodId, in somId descriptor); // Sets the method descriptor given by for the method // into the method information kept by the receiving class. // 1 (true) is returned if the method is supported by this object // and 0 (false) otherwise. boolean somFindMethod(in somId methodId, out somMethodPtr m); // Finds the method procedure associated with for this // class and sets to it. 1 (true) is returned when the // method procedure is a static method and 0 (false) is returned // when the method procedure is dynamic method. // // If the class does not support the specified method then // is set to NULL and the return value is meaningless. // boolean somFindMethodOk(in somId methodId, out somMethodPtr m); // Just like except that if the method is not // supported then an error is raised and execution is halted. somMethodPtr somFindSMethod(in somId methodId); // Finds the indicated method, which must be a static method supported // by this class, and returns a pointer to its method procedure. // If the method is not supported by the receiver (as a static method // or at all) then a NULL pointer is returned. somMethodPtr somFindSMethodOk(in somId methodId); // Uses , and raises an error if the result is NULL. somMethodPtr somLookupMethod(in somId methodId); // Like , but without restriction to static methods. boolean somCheckVersion(in long majorVersion, in long minorVersion); // Returns 1 (true) if the implementation of this class is // compatible with the specified major and minor version number and // false (0) otherwise. An implementation is compatible with the // specified version numbers if it has the same major version number // and a minor version number that is equal to or greater than // . The major, minor version number pair (0,0) is // considered to match any version. This method is usually called // immediately after creating the class object to verify that a // dynamically loaded class definition is compatible with a using // application. boolean somDescendedFrom(in SOMClass aClassObj); // Returns 1 (true) if is a descendent class of and // 0 (false) otherwise. Note: a class object is considered to be // descended itself for the purposes of this method. boolean somSupportsMethod(in somId mId); // Returns 1 (true) if the indicated method is supported by this // class and 0 (false) otherwise. somMethodPtr somDefinedMethod(in somMToken method); // if the receiving class either introduces or overrides the // indicated method, then its somMethodPtr is returned, otherwise // NULL is returned. void somOverrideMtab(); // Overrides the method table pointers to point to the redispatch stubs. // All the methods except somDispatch methods are overriden. }; interface WPFolder; interface M_WPObject; interface M_WPObject; // ------------------------------------------------------------------ // File: wptypes.idl // // This file contains the IDL type definitions for the foreign types // defined in the WPSH IDL files. // // ------------------------------------------------------------------ interface WPObject; interface WPFolder; interface M_WPObject; typedef unsigned long ULONG; typedef ULONG PULONG; typedef ULONG HWND; typedef octet BYTE; typedef octet PBYTE; typedef string PSZ; typedef long BOOL32; typedef int BOOL; typedef unsigned short USHORT; typedef USHORT PUSHORT; typedef octet UCHAR; typedef octet PUCHAR; typedef PSZ PDEVOPENDATA; typedef ULONG LHANDLE; typedef ULONG HPOINTER; typedef ULONG HBITMAP; typedef LHANDLE HSTR; typedef LHANDLE HMODULE; typedef LHANDLE HFS; typedef LHANDLE HDC; typedef LHANDLE HAPP; typedef LHANDLE HPS; typedef LHANDLE HOBJECT; typedef int PVOID; typedef int MRESULT; const long CCHMAXPATH = 260; const long CCHMAXPATHCOMP = 256; const long MAX_ASSOC_ITEMS = 12; const long FACESIZE = 32; typedef MRESULT FNWP; typedef FNWP PFNWP; typedef BOOL FNOWNDRW; typedef FNOWNDRW PFNOWNDRW; typedef long FNCOMPARE; typedef FNCOMPARE PFNCOMPARE; struct USEITEM { ULONG type; //USEITEM pNext; }; typedef USEITEM PUSEITEM; struct POINTL { long x; long y; } ; typedef POINTL PPOINTL; struct MINIRECORDCORE { ULONG cb; ULONG flRecordAttr; POINTL ptlIcon; //MINIRECORDCORE preccNextRecord; PSZ pszIcon; HPOINTER hptrIcon; } ; typedef MINIRECORDCORE PMINIRECORDCORE; struct TREEITEMDESC { HBITMAP hbmExpanded; HBITMAP hbmCollapsed; HPOINTER hptrExpanded; HPOINTER hptrCollapsed; } ; typedef TREEITEMDESC PTREEITEMDESC; struct RECORDCORE { ULONG cb; ULONG flRecordAttr; POINTL ptlIcon; //RECORDCORE preccNextRecord; PSZ pszIcon; HPOINTER hptrIcon; HPOINTER hptrMiniIcon; HBITMAP hbmBitmap; HBITMAP hbmMiniBitmap; PTREEITEMDESC pTreeItemDesc; PSZ pszText; PSZ pszName; PSZ pszTree; }; typedef RECORDCORE PRECORDCORE; struct RECORDINSERT { ULONG cb; PRECORDCORE pRecordOrder; PRECORDCORE pRecordParent; ULONG fInvalidateRecord; ULONG zOrder; ULONG cRecordsInsert; }; typedef RECORDINSERT PRECORDINSERT; struct DRAGINFO { ULONG cbDraginfo; USHORT cbDragitem; USHORT usOperation; HWND hwndSource; short xDrop; short yDrop; USHORT cditem; USHORT usReserved; }; typedef DRAGINFO PDRAGINFO; struct DRAGITEM { HWND hwndItem; ULONG ulItemID; HSTR hstrType; HSTR hstrRMF; HSTR hstrContainerName; HSTR hstrSourceName; HSTR hstrTargetName; short cxOffset; short cyOffset; USHORT fsControl; USHORT fsSupportedOps; } ; typedef DRAGITEM PDRAGITEM; struct DRAGTRANSFER { ULONG cb; HWND hwndClient; PDRAGITEM pditem; HSTR hstrSelectedRMF; HSTR hstrRenderToName; ULONG ulTargetInfo; USHORT usOperation; USHORT fsReply; } ; typedef DRAGTRANSFER PDRAGTRANSFER; struct PAGEINFO { ULONG cb; HWND hwndPage; PFNWP pfnwp; ULONG resid; PVOID pCreateParams; USHORT dlgid; USHORT usPageStyleFlags; USHORT usPageInsertFlags; USHORT usSettingsFlags; PSZ pszName; USHORT idDefaultHelpPanel; USHORT usReserved2; PSZ pszHelpLibraryName; PUSHORT pHelpSubtable; HMODULE hmodHelpSubtable; ULONG ulPageInsertId; }; typedef PAGEINFO PPAGEINFO; struct PRINTDEST { ULONG cb; long lType; PSZ pszToken; long lCount; PDEVOPENDATA pdopData; ULONG fl; PSZ pszPrinter; } ; typedef PRINTDEST PPRINTDEST; struct ICONINFO { ULONG cb; ULONG fFormat; PSZ pszFileName; HMODULE hmod; ULONG resid; ULONG cbIconData; PVOID pIconData; } ; typedef ICONINFO PICONINFO; struct TASKREC { //TASKREC next; ULONG useCount; PVOID pStdDlg; WPFolder folder; long xOrigin; long yOrigin; PSZ pszTitle; ULONG cbTitle; PMINIRECORDCORE positionAfterRecord; BOOL fKeepAssociations; PVOID pReserved; } ; typedef TASKREC PTASKREC; struct WPSRCLASSBLOCK { short ClassNameLength; USHORT IVarLength; }; struct OBJDATA { WPSRCLASSBLOCK CurrentClass; WPSRCLASSBLOCK First; PUCHAR NextData; USHORT Length; }; typedef OBJDATA POBJDATA; typedef ULONG HMTX; struct VIEWITEM { ULONG view; LHANDLE handle; ULONG ulViewState; HWND hwndCnr; PMINIRECORDCORE pRecord; } ; typedef VIEWITEM PVIEWITEM; typedef long PLONG; struct CLASSDETAILS { PSZ pszAttribute; PVOID pSortRecord; //CLASSDETAILS pNext; } ; typedef CLASSDETAILS PCLASSDETAILS; struct CLASSFIELDINFO { ULONG cb; ULONG flData; ULONG flTitle; PVOID pTitleData; ULONG ulReserved; PVOID pUserData; //CLASSFIELDINFO pNextFieldInfo; ULONG cxWidth; ULONG offFieldData; ULONG ulLenFieldData; PFNOWNDRW pfnOwnerDraw; ULONG flCompare; PFNCOMPARE pfnCompare; ULONG DefaultComparison; ULONG ulLenCompareValue; PVOID pDefCompareValue; PVOID pMinCompareValue; PVOID pMaxCompareValue; PSZ pszEditControlClass; PFNCOMPARE pfnSort; } ; typedef CLASSFIELDINFO PCLASSFIELDINFO; typedef ULONG HFIND; typedef HFIND PHFIND; typedef WPObject OBJECT; typedef OBJECT POBJECT; typedef M_WPObject CLASS; typedef CLASS PCLASS; struct SIZEL { long cx; long cy; } ; typedef SIZEL PSIZEL; struct FEA2 { ULONG oNextEntryOffset; BYTE fEA; BYTE cbName; USHORT cbValue; char szName[1]; } ; typedef FEA2 PFEA2; struct FEA2LIST { ULONG cbList; FEA2 list[1]; }; typedef FEA2LIST PFEA2LIST; struct FDATE { USHORT date; } ; typedef FDATE PFDATE; struct FTIME { USHORT time; } ; typedef FTIME PFTIME; struct FILEFINDBUF4 { ULONG oNextEntryOffset; FDATE fdateCreation; FTIME ftimeCreation; FDATE fdateLastAccess; FTIME ftimeLastAccess; FDATE fdateLastWrite; FTIME ftimeLastWrite; ULONG cbFile; ULONG cbFileAlloc; ULONG attrFile; ULONG cbList; UCHAR cchName; char achName[CCHMAXPATHCOMP]; } ; typedef FILEFINDBUF4 PFILEFINDBUF4; struct INFOCLASS { ULONG flags; PSZ pszClass; ULONG cbObjData; POBJDATA pObjData; }; typedef INFOCLASS PINFOCLASS; struct CDATE { UCHAR day; UCHAR month; USHORT year; } ; typedef CDATE PCDATE; struct CTIME { UCHAR hours; UCHAR minutes; UCHAR seconds; UCHAR ucReserved; } ; typedef CTIME PCTIME; struct FILEDETAILS { PSZ pszRealName; ULONG ulSize; CDATE cdateLastMod; CTIME ctimeLastMod; CDATE cdateLastAccess; CTIME ctimeLastAccess; CDATE cdateCreation; CTIME ctimeCreation; ULONG ulFlags; } ; typedef FILEDETAILS PFILEDETAILS; struct FILESYS_SEARCH_INFO { USHORT Exclude; USHORT MustHave; BOOL fIncludeLMD; USHORT LMDyear; USHORT LMDmonth; USHORT LMDday; short LMDcriteria; BOOL fIncludeLMT; USHORT LMThours; USHORT LMTminutes; USHORT LMTseconds; short LMTcriteria; BOOL fIncludeFDS; ULONG FDSsize; short FDScriteria; BOOL fIncludeFEAS; ULONG FEASsize; short FEAScriteria; BOOL fMustHaveNeedEA; BOOL fMustNotHaveNeedEA; }; typedef FILESYS_SEARCH_INFO PFILESYS_SEARCH_INFO; struct TRANSINFO { //TRANSINFO pNext; WPObject Object; ULONG Handle; } ; typedef TRANSINFO PTRANSINFO; typedef LHANDLE HPROGRAM; struct SWP { ULONG fl; long cy; long cx; long y; long x; HWND hwndInsertBehind; HWND hwnd; ULONG ulReserved1; ULONG ulReserved2; } ; typedef SWP PSWP; typedef ULONG PROGCATEGORY; typedef PROGCATEGORY PPROGCATEGORY; struct PROGTYPE { PROGCATEGORY progc; ULONG fbVisible; } ; typedef PROGTYPE PPROGTYPE; struct PROGDETAILS { ULONG Length; PROGTYPE progt; PSZ pszTitle; PSZ pszExecutable; PSZ pszParameters; PSZ pszStartupDir; PSZ pszIcon; PSZ pszEnvironment; SWP swpInitial; } ; typedef PROGDETAILS PPROGDETAILS; struct ICONPOS { POINTL ptlIcon; char szIdentity[1]; } ; typedef ICONPOS PICONPOS; struct SEARCH_INFO { M_WPObject ClassToBeFound; BOOL fSkipExtendedSearchCriteria; PVOID pvoidExtendedCriteria; } ; typedef SEARCH_INFO PSEARCH_INFO; typedef ULONG HEV; struct LINKITEM { WPObject LinkObj; } ; typedef LINKITEM PLINKITEM; struct CRITERIA { PVOID pReserved; //CRITERIA pNext; //CRITERIA pPrev; ULONG ClassFieldInfoIndex; ULONG LogicalOperator; ULONG ComparisonType; ULONG ulLenCompareValue; char CompareValue[1]; }; typedef CRITERIA PCRITERIA; typedef LHANDLE HFOBJ; struct CELL { ULONG cbData; }; typedef CELL PCELL; struct RECTL { long xLeft; long yBottom; long xRight; long yTop; } ; typedef RECTL PRECTL; struct PALINFO { ULONG xCellCount; ULONG yCellCount; ULONG xCursor; ULONG yCursor; ULONG xCellWidth; ULONG yCellHeight; ULONG xGap; ULONG yGap; }; typedef PALINFO PPALINFO; struct CELLSTRUCT { RECTL rclCell; PCELL pCell; } ; typedef CELLSTRUCT PCELLSTRUCT; struct CLASSCRITERIA { //CLASSCRITERIA pNext; //CLASSCRITERIA pPrev; M_WPObject Class; PCRITERIA pCriteria; WPObject NotifyObject; } ; typedef CLASSCRITERIA PCLASSCRITERIA; struct FATTRS { USHORT usRecordLength; USHORT fsSelection; long lMatch; char szFacename[FACESIZE]; USHORT idRegistry; USHORT usCodePage; long lMaxBaselineExt; long lAveCharWidth; USHORT fsType; USHORT fsFontUse; } ; typedef FATTRS PFATTRS; interface WPObject : SOMObject { ULONG wpAddObjectGeneralPage(in HWND hwndNotebook); ULONG wpAddObjectGeneralPage2(in HWND hwndNotebook); ULONG wpAddObjectWindowPage(in HWND hwndNotebook); BOOL wpAddSettingsPages(in HWND hwndNotebook); BOOL wpAddToObjUseList(in PUSEITEM pUseItem); PBYTE wpAllocMem(in ULONG cbBytes, in PULONG prc); BOOL32 wpAppendObject(in WPObject targetObject, in BOOL32 fMove); BOOL wpAssertObjectMutexSem(); BOOL wpClose(); PMINIRECORDCORE wpCnrInsertObject(in HWND hwndCnr, in PPOINTL pptlIcon, in PMINIRECORDCORE preccParent, in PRECORDINSERT pRecInsert); BOOL wpCnrRemoveObject(in HWND hwndCnr); BOOL wpCnrSetEmphasis(in ULONG ulEmphasisAttr, in BOOL fTurnOn); ULONG wpConfirmDelete(in ULONG fConfirmations); ULONG wpConfirmObjectTitle(in WPFolder Folder, inout WPObject ppDuplicate, in PSZ pszTitle, in ULONG cbTitle, in ULONG menuID); void wpCopiedFromTemplate(); WPObject wpCopyObject(in WPFolder Folder, in BOOL fLock); WPObject wpCreateAnother(in PSZ pszTitle, in PSZ pszSetupEnv, in WPFolder Folder); WPObject wpCreateFromTemplate(in WPFolder folder, in BOOL fLock); WPObject wpCreateShadowObject(in WPFolder Folder, in BOOL fLock); ULONG wpDelete(in ULONG fConfirmations); BOOL wpDeleteFromObjUseList(in PUSEITEM pUseItem); BOOL wpDisplayHelp(in ULONG HelpPanelId, in PSZ HelpLibrary); HWND wpDisplayMenu(in HWND hwndOwner, in HWND hwndClient, inout POINTL ptlPopupPt, in ULONG ulMenuType, in ULONG ulReserved); BOOL wpDoesObjectMatch(in PVOID pvoidExtendedCriteria); MRESULT wpDraggedOverObject(in WPObject DraggedOverObject); MRESULT wpDragOver(in HWND hwndCnr, in PDRAGINFO pdrgInfo); MRESULT wpDrop(in HWND hwndCnr, in PDRAGINFO pdrgInfo, in PDRAGITEM pdrgItem); BOOL wpDroppedOnObject(in WPObject DroppedOnObject); MRESULT wpEndConversation(in ULONG ulItemID, in ULONG flResult); ULONG wpFilterPopupMenu(in ULONG ulFlags, in HWND hwndCnr, in BOOL fMultiSelect); PUSEITEM wpFindUseItem(in ULONG type, in PUSEITEM pCurrentItem); BOOL wpFormatDragItem(in PDRAGITEM pdrgItem); BOOL wpFree(); BOOL wpFreeMem(in PBYTE pByte); BOOL wpHide(); void wpInitData(); BOOL wpInsertPopupMenuItems(in HWND hwndMenu, in ULONG iPosition, in HMODULE hmod, in ULONG MenuID, in ULONG SubMenuID); ULONG wpInsertSettingsPage(in HWND hwndNotebook, in PPAGEINFO ppageinfo); BOOL wpMenuItemHelpSelected(in ULONG MenuId); BOOL wpMenuItemSelected(in HWND hwndFrame, in ULONG ulMenuId); BOOL wpModifyPopupMenu(in HWND hwndMenu, in HWND hwndCnr, in ULONG iPosition); BOOL wpMoveObject(in WPFolder Folder); HWND wpOpen(in HWND hwndCnr, in ULONG ulView, in ULONG param); BOOL wpPrintObject(in PPRINTDEST pPrintDest, in ULONG ulReserved); ULONG wpQueryConcurrentView(); ULONG wpQueryButtonAppearance(); ULONG wpQueryConfirmations(); BOOL wpQueryDefaultHelp(in PULONG pHelpPanelId, in PSZ HelpLibrary); ULONG wpQueryDefaultView(); ULONG wpQueryDetailsData(inout PVOID ppDetailsData, in PULONG pcp); ULONG wpQueryError(); BOOL wpSetFolder(in WPObject container); WPObject wpQueryFolder(); HPOINTER wpQueryIcon(); ULONG wpQueryIconData(in PICONINFO pIconInfo); ULONG wpQueryMinWindow(); ULONG wpQueryNameClashOptions(in ULONG menuID); ULONG wpQueryStyle(); BOOL32 wpSetTaskRec(in PTASKREC pNew, in PTASKREC pOld); PTASKREC wpFindTaskRec(); PSZ wpQueryTitle(); BOOL wpRegisterView(in HWND hwndFrame, in PSZ pszViewTitle); ULONG wpReleaseObjectMutexSem(); MRESULT wpRender(in PDRAGTRANSFER pdxfer); MRESULT wpRenderComplete(in PDRAGTRANSFER pdxfer, in ULONG ulResult); BOOL32 wpReplaceObject(in WPObject targetObject, in BOOL32 fMove); ULONG wpRequestObjectMutexSem(in ULONG ulTimeout); BOOL wpRestore(); BOOL wpRestoreData(in PSZ pszClass, in ULONG ulKey, in PBYTE pValue, in PULONG pcbValue); BOOL wpRestoreLong(in PSZ pszClass, in ULONG ulKey, in PULONG pulValue); BOOL wpRestoreState(in ULONG ulReserved); BOOL wpRestoreString(in PSZ pszClass, in ULONG ulKey, in PSZ pszValue, in PULONG pcbValue); BOOL wpSaveData(in PSZ pszClass, in ULONG ulKey, in PBYTE pValue, in ULONG cbValue); BOOL wpSaveImmediate(); BOOL wpSaveDeferred(); BOOL wpSaveLong(in PSZ pszClass, in ULONG ulKey, in ULONG ulValue); BOOL wpSaveState(); BOOL wpSaveString(in PSZ pszClass, in ULONG ulKey, in PSZ pszValue); BOOL wpScanSetupString(in PSZ pszSetupString, in PSZ pszKey, in PSZ pszValue, in PULONG pcbValue); void wpSetConcurrentView(in ULONG ulCCView); void wpSetButtonAppearance(in ULONG ulButtonType); BOOL wpSetDefaultHelp(in ULONG HelpPanelId, in PSZ HelpLibrary); BOOL wpSetDefaultView(in ULONG ulView); BOOL wpSetError(in ULONG ulErrorId); BOOL wpSetIconHandle(in HPOINTER hptrNewIcon); USHORT wpQueryScreenGroupID( in USHORT usPrevSgId ); BOOL wpSetupOnce (in PSZ pszSetupString); BOOL wpSetIcon(in HPOINTER hptrNewIcon); BOOL wpSetIconData(in PICONINFO pIconInfo); void wpSetMinWindow(in ULONG ulMinWindow); BOOL wpSetStyle(in ULONG ulNewStyle); BOOL wpModifyStyle(in ULONG ulStyleFlags, in ULONG ulStyleMask); BOOL wpSetTitle(in PSZ pszNewTitle); BOOL wpSetup(in PSZ pszSetupString); BOOL wpSwitchTo(in ULONG View); void wpUnInitData(); HWND wpViewObject(in HWND hwndCnr, in ULONG ulView, in ULONG param); ULONG wpQueryTrueStyle(); HOBJECT wpQueryHandle(); BOOL wpUnlockObject(); void wpObjectReady( in ULONG ulCode, in WPObject refObject ); BOOL wpIsObjectInitialized(); WPObject wpCreateShadowObjectExt( in WPFolder Folder, in BOOL fLock, in PSZ pszSetup, in M_WPObject shadowClass ); BOOL wpCnrDeleteUseItem(in HWND hwndCnr); BOOL wpIsDeleteable(); PMINIRECORDCORE wpQueryCoreRecord(); BOOL wpSetObjectID(in PSZ pszObjectID); PSZ wpQueryObjectID(); BOOL wpSetDefaultIconPos(in PPOINTL pPointl); BOOL wpQueryDefaultIconPos(in PPOINTL pPointl); void wpCnrRefreshDetails(); PVIEWITEM wpFindViewItem(in ULONG flViews, in PVIEWITEM pCurrentItem); void wpLockObject(); BOOL wpIsLocked(); PULONG wpQueryContainerFlagPtr(); ULONG wpWaitForClose(in LHANDLE lhView, in ULONG ulViews, in long lTimeOut, in BOOL bAutoClose); }; interface M_WPObject : SOMClass { BOOL wpclsCreateDefaultTemplates(in WPObject Folder); void wpclsInitData(); WPObject wpclsMakeAwake(in PSZ pszTitle, in ULONG ulStyle, in HPOINTER hptrIcon, in POBJDATA pObjData, in WPFolder Folder, in ULONG ulUser); WPObject wpclsNew(in PSZ pszTitle, in PSZ pszSetupEnv, in WPFolder Folder, in BOOL fLock); BOOL wpclsQueryDefaultHelp(in PULONG pHelpPanelId, in PSZ pszHelpLibrary); ULONG wpclsQueryDefaultView(); PCLASSDETAILS wpclsQueryDetails(); ULONG wpclsQueryDetailsInfo(inout PCLASSFIELDINFO ppClassFieldInfo, in PULONG pSize); BOOL wpclsQueryExtendedCriteria(in PSZ pszName, in ULONG ulSearchType, in PVOID pvoidExtendedCriteria); WPObject wpclsQueryFolder(in PSZ pszLocation, in BOOL fLock); HPOINTER wpclsQueryIcon(); void wpclsQuerySearchInfo(inout M_WPObject ClassExtended, inout M_WPObject ClassCreate, in PULONG pulClassCriteriaSize); ULONG wpclsQueryStyle(); PSZ wpclsQueryTitle(); void wpclsUnInitData(); BOOL wpclsFindObjectFirst(in PCLASS pClassList, in PHFIND phFind, in PSZ pszTitle, in WPFolder Folder, in BOOL fSubfolders, in PVOID pExtendedCriteria, in POBJECT pBuffer, in PULONG pCount); BOOL wpclsFindObjectNext(in HFIND hFind, in POBJECT pBuffer, in PULONG pCount); BOOL wpclsFindObjectEnd(in HFIND hFind); BOOL wpclsSetError(in ULONG ulErrorId); ULONG wpclsQueryError(); BOOL wpclsQuerySettingsPageSize(in PSIZEL pSizl); ULONG wpclsQueryIconData(in PICONINFO pIconInfo); WPObject wpclsQueryObject(in HOBJECT hObject); ULONG wpclsQueryButtonAppearance(); void wpclsDecUsage(); void wpclsIncUsage(); BOOL wpclsInsertMultipleObjects(in HWND hwndCnr, in PPOINTL pptlIcon, inout PVOID pObjectArray, in PVOID pRecordParent, in ULONG NumRecords); WPObject wpclsFindOneObject(in HWND hwndOwner, in PSZ pszFindParams); BOOL wpclsSetSettingsPageSize(in PSIZEL pSizl); BOOL wpclsSetIconData(in PICONINFO pIconInfo); BOOL wpclsSetIcon(in HPOINTER hptrNewIcon); WPObject wpclsObjectFromHandle(in HOBJECT hObject); BOOL wpclsRemoveObjects(in HWND hwndCnr, inout PVOID pRecordArray, in ULONG NumRecords, in BOOL RemoveAll); }; // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPAbstract; interface WPAbstract : WPObject { }; interface M_WPAbstract : M_WPObject { ULONG wpclsQuerySetting(in PSZ pszSetting, in PVOID pValue, in ULONG ulValueLen); BOOL wpclsSetSetting(in PSZ pszSetting, in PVOID pValue); }; // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface WPRootFolder; interface M_WPDisk; interface WPDisk : WPAbstract { ULONG wpAddDiskDetailsPage(in HWND hwndNotebook); ULONG wpQueryDriveLockStatus(in PULONG pulLockStatus, in PULONG pulLockCount); ULONG wpEjectDisk(); ULONG wpLockDrive(in BOOL fLock); ULONG wpQueryLogicalDrive(); WPRootFolder wpQueryRootFolder(); BOOL wpSetCorrectDiskIcon(); }; interface M_WPDisk : M_WPAbstract { }; // Module Header // // Module Name: WPFOLDER // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPFSYS // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1994 // // Module Header // // Module Name: WPOBJECT // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPFileSystem; interface WPFileSystem : WPObject { BOOL wpSetRealName(in PSZ pszName); BOOL wpSetType(in PSZ pszTypes, in PFEA2LIST pfeal); PSZ wpQueryType(); BOOL wpSetAttr(in ULONG attrFile); ULONG wpQueryAttr(); ULONG wpAddFile1Page(in HWND hwndNotebook); ULONG wpAddFile2Page(in HWND hwndNotebook); ULONG wpAddFile3Page(in HWND hwndNotebook); ULONG wpAddFileMenuPage(in HWND hwndNotebook); ULONG wpQueryCreation(inout FDATE fdate, inout FTIME ftime); ULONG wpQueryLastAccess(inout FDATE fdate, inout FTIME ftime); ULONG wpQueryLastWrite(inout FDATE fdate, inout FTIME ftime); ULONG wpQueryFileSize(); ULONG wpQueryEASize(); ULONG wpSetDateInfo(inout FILEFINDBUF4 pstFileFindBuf); ULONG wpSetFileSizeInfo(in ULONG cbFileSize, in ULONG cbEASize); BOOL wpRefresh(in ULONG ulView, in PVOID pReserved); ULONG wpQueryRefreshFlags(); BOOL wpSetRefreshFlags(in ULONG ulRefreshFlags); BOOL wpPrintPlainTextFile(in PPRINTDEST pPrintDest); BOOL wpSetTitleAndRenameFile(in PSZ pszNewTitle, in ULONG fConfirmations); ULONG wpConfirmRenameFileWithExt(); ULONG wpVerifyUpdateAccess(); BOOL wpAddUserItemsToPopupMenu(in HWND hwndMenu, in HWND hwndCnr, in ULONG iPosition); BOOL wpIsDiskSwapped(); BOOL wpQueryRealName(in PSZ pszFilename, in PULONG pcb, in BOOL fQualified); PSZ wpQueryFilename(in PSZ pszFilename, in BOOL fQualified); WPFileSystem wpQueryDisk(); ULONG wpQueryDateInfo(inout FILEFINDBUF4 pstFileFindBuf); ULONG wpConfirmKeepAssoc(); }; interface M_WPFileSystem : M_WPObject { WPObject wpclsQueryAwakeObject( in PSZ pszInputPath ); WPObject wpclsFileSysExists( in WPFolder Folder, in PSZ pszFilename, in ULONG attrFile ); WPObject wpclsQueryObjectFromPath(in PSZ pszFQPath); PSZ wpclsQueryInstanceType(); PSZ wpclsQueryInstanceFilter(); }; // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPFolder; interface WPFolder : WPFileSystem { BOOL wpSetFldrFlags(in ULONG ulFlags); ULONG wpQueryFldrFlags(); BOOL wpSetFldrFont(in PSZ pszFont, in ULONG ulView); PSZ wpQueryFldrFont(in ULONG ulView); BOOL wpSetFldrAttr(in ULONG Attr, in ULONG ulView); ULONG wpQueryFldrAttr(in ULONG ulView); BOOL wpSetNextIconPos(in PPOINTL pptl); PPOINTL wpQueryNextIconPos(); BOOL wpPopulate(in ULONG ulReserved, in PSZ pszPath, in BOOL fFoldersOnly); WPObject wpQueryContent(in WPObject Object, in ULONG ulOption); ULONG wpAddFolderView1Page(in HWND hwndNotebook); ULONG wpAddFolderView2Page(in HWND hwndNotebook); ULONG wpAddFolderView3Page(in HWND hwndNotebook); ULONG wpAddFolderIncludePage(in HWND hwndNotebook); ULONG wpAddFolderSortPage(in HWND hwndNotebook); ULONG wpAddFolderBackgroundPage(in HWND hwndNotebook); ULONG wpAddFolderSelfClosePage (in HWND hwndNotebook); BOOL wpInitIconPosData(); void wpFreeIconPosData(); BOOL wpStoreIconPosData(in PICONPOS pIconPos, in ULONG cbSize); BOOL wpQueryIconPosition(in PSZ pszIdentity, in PPOINTL pptl, in PULONG pIndex); BOOL wpSetFldrSort(in PVOID pSortRecord, in ULONG ulView, in ULONG ulType); PVOID wpQueryFldrSort(in ULONG ulView, in ULONG ulType); BOOL wpRestoreFldrRunObjs(); BOOL wpStoreFldrRunObjs(in ULONG ulType); BOOL wpHideFldrRunObjs(in BOOL fHide); ULONG wpDeleteContents(in ULONG fConfirmations); BOOL wpSetFldrDetailsClass(in M_WPObject Class); M_WPObject wpQueryFldrDetailsClass(); BOOL wpSearchFolder(in PSZ pszName, in ULONG ulSearchType, in ULONG ulLen, in PSEARCH_INFO pInfo, in WPFolder ResultFolder); BOOL wpContainsFolders(inout BOOL pfSubFolders); WPObject wpQueryOpenFolders(in ULONG ulOption); BOOL wpModifyFldrFlags(in ULONG ulFlags, in ULONG ulFlagMask); BOOL wpAddToContent(in WPObject Object); BOOL wpDeleteFromContent(in WPObject Object); BOOL wpSetDetailsColumnVisibility(in ULONG index, in BOOL Visible); BOOL wpIsDetailsColumnVisible(in ULONG index); BOOL wpSetFldrSortClass(in M_WPObject Class); M_WPObject wpQueryFldrSortClass(); BOOL wpSetSortAttribAvailable(in ULONG index, in BOOL Available); BOOL wpIsSortAttribAvailable(in ULONG index); char wpQueryIconViewPos(); WPObject wpAddFirstChild(); }; interface M_WPFolder : M_WPFileSystem { ULONG wpclsQueryIconDataN( inout ICONINFO pIconInfo, in ULONG ulIconIndex ); HPOINTER wpclsQueryIconN( in ULONG ulIconIndex ); WPFolder wpclsQueryOpenFolders(in WPFolder Folder, in ULONG ulOption, in BOOL fLock); }; // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPMinWinViewer; interface WPMinWinViewer : WPFolder { WPObject wpFindMinWindow(in HWND hwndFrame); }; interface M_WPMinWinViewer : M_WPFolder { }; // Module Header // // Module Name: WPPRINT // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPABS // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version // ------------------------------------------------------------------ // Module: wprttype.idl // // This file contains the IDL type definitions for the foreign types // used in the PrintObjects' IDL files. // interface WPObject; struct DATETIME { UCHAR hours; UCHAR minutes; UCHAR seconds; UCHAR hundredths; UCHAR day; UCHAR month; USHORT year; short timezone; UCHAR weekday; }; typedef DATETIME PDATETIME; struct DRIVDATA { long cb; long lVersion; char szDeviceName[32]; char abGeneralData[1]; }; typedef DRIVDATA PDRIVDATA; struct PRJINFO2 { USHORT uJobId; USHORT uPriority; PSZ pszUserName; USHORT uPosition; USHORT fsStatus; ULONG ulSubmitted; ULONG ulSize; PSZ pszComment; PSZ pszDocument; } ; typedef PRJINFO2 PPRJINFO2; typedef PRJINFO2 NPPRJINFO2; struct PRJINFO3 { USHORT uJobId; USHORT uPriority; PSZ pszUserName; USHORT uPosition; USHORT fsStatus; ULONG ulSubmitted; ULONG ulSize; PSZ pszComment; PSZ pszDocument; PSZ pszNotifyName; PSZ pszDataType; PSZ pszParms; PSZ pszStatus; PSZ pszQueue; PSZ pszQProcName; PSZ pszQProcParms; PSZ pszDriverName; PDRIVDATA pDriverData; PSZ pszPrinterName; }; typedef PRJINFO3 PPRJINFO3; typedef PRJINFO3 NPPRJINFO3; struct PRDINFO3 { PSZ pszPrinterName; PSZ pszUserName; PSZ pszLogAddr; USHORT uJobId; USHORT fsStatus; PSZ pszStatus; PSZ pszComment; PSZ pszDrivers; USHORT time; USHORT usTimeOut; } ; typedef PRDINFO3 PPRDINFO3; typedef PRDINFO3 NPPRDINFO3; struct PRDRIVINFO { char szDrivName[8+1+31+1]; } ; typedef PRDRIVINFO PPRDRIVINFO; typedef PRDRIVINFO NPPRDRIVINFO; struct PRPORTINFO1 { PSZ pszPortName ; PSZ pszPortDriverName ; PSZ pszPortDriverPathName ; } ; typedef PRPORTINFO1 PPRPORTINFO1; typedef PRPORTINFO1 NPPRPORTINFO1; struct PRQPROCINFO { char szQProcName[12+1]; } ; typedef PRQPROCINFO PPRQPROCINFO; typedef PRQPROCINFO NPPRQPROCINFO; interface M_WPPrinter; interface WPPrinter : WPAbstract // // CLASS: WPPrinter // // CLASS HIERARCHY: // SOMObject // Áýý WPObject // Áýý WPAbstract // Áýý WPPrinter // // DESCRIPTION: // This is the print destination object class. // An instance of this class can be created as a Workplace object. // An instance of this class is created initially by the system in // its template form. It has the title "Create print destination" // and resides in the "Templates" folder. Instances of this class // are also created initially by the system for each print destination // configured. Each instance will have a title corresponding to the // description of the configured queue and printer and will reside on // the desktop. // { BOOL wpDeleteAllJobs(); BOOL wpHoldPrinter(); BOOL wpReleasePrinter(); ULONG wpQueryComputerName(in PSZ pszComputerName); BOOL wpQueryPrinterName(in PSZ pszPrinterName); BOOL wpSetComputerName(in PSZ pszComputerName); BOOL wpSetPrinterName(in PSZ pszPrinterName); BOOL wpSetDefaultPrinter(); BOOL wpSetQueueOptions(in ULONG ulOptions); ULONG wpQueryQueueOptions(); BOOL wpSetRemoteOptions(in ULONG ulRefreshInterval, in ULONG flAllJobs); BOOL wpQueryRemoteOptions(in PULONG pulRefreshInterval,in PULONG pflAllJobs); BOOL wpJobAdded(in ULONG ulJobId); BOOL wpJobChanged(in ULONG ulJobId, in ULONG ulField); BOOL wpJobDeleted(in ULONG ulJobId); }; interface M_WPPrinter { }; // Module Header // // Module Name: WPSPNEED // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPABS // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPSpecialNeeds; interface WPSpecialNeeds : WPAbstract { }; interface M_WPSpecialNeeds : M_WPAbstract { }; // Module Header // // Module Name: WPDRIVES // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPFOLDER // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPDrives; interface WPDrives : WPFolder { }; interface M_WPDrives : M_WPFolder { }; // Module Header // // Module Name: WPNETGRP // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPFOLDER // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPNetgrp; interface WPNetgrp : WPFolder { ULONG wpAddNetworkPage(in HWND hwndNotebook); PSZ wpQueryNetIdentity(); BOOL wpSetNetIdentity( in PSZ pszNetIdentity); }; interface M_WPNetgrp : M_WPFolder { }; // Module Header // // Module Name: WPPTR // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPDATAF // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPFSYS // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1994 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPDataFile; interface WPDataFile : WPFileSystem { ULONG wpAddFileTypePage(in HWND hwndNotebook); BOOL wpPrintMetaFile(in PPRINTDEST pPrintDest); BOOL wpPrintPifFile(in PPRINTDEST pPrintDest); BOOL wpPrintPrinterSpecificFile(in PPRINTDEST pPrintDest); BOOL wpPrintUnknownFile(in PPRINTDEST pPrintDest); WPObject wpQueryAssociatedProgram(in ULONG ulView, in PULONG pulHowMatched, in PSZ pszMatchString, in ULONG cbMatchString, in PSZ pszDefaultType); void wpSetAssociatedFileIcon(); HPOINTER wpQueryAssociatedFileIcon(); }; interface M_WPDataFile : M_WPFileSystem { }; // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPPointer; interface WPPointer : WPDataFile { }; interface M_WPPointer : M_WPDataFile { }; // Module Header // // Module Name: WPSPOOL // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPABS // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version // ------------------------------------------------------------------ // Module: wprttype.idl // // This file contains the IDL type definitions for the foreign types // used in the PrintObjects' IDL files. // interface M_WPSpool; interface WPSpool : WPAbstract { ULONG wpAddSetPathPage(in HWND hwndNotebook); ULONG wpAddSetPriorityPage(in HWND hwndNotebook); }; interface M_WPSpool { }; // Module Header // // Module Name: WPWinConfig // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPABS // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPWinConfig; interface WPWinConfig : WPAbstract { ULONG wpAddDDEPage(in HWND hwndNotebook); ULONG wpAddSessionPage(in HWND hwndNotebook); ULONG wpAddSession31Page(in HWND hwndNotebook); }; interface M_WPWinConfig : M_WPAbstract { }; // // COMPONENT_NAME: somd // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // Interface for DSOM Server Objects // // This class defines and implements the behavior of DSOM Server objects // used with the DSOM Object Manager (SOMDObjectMgr). // // Each DSOM server process is defined to have a (single instance of a) // SOMDServer object. The SOMDServer object performs three kinds of // functions: // // 1) creation of SOM objects // 2) mapping of application-defined object ids into DSOM object // "references" (SOMDObjects), and back again // 3) any application-specific server methods (e.g., for initialization, // server control, etc.) // // The SOMDServer class defines methods for the basic creation of SOM // objects in the server process (somdCreateObj), for deletion of SOM // objects (somdDeleteObj), and for finding the SOM class object for a // specified class (somdGetClassObj). // With somdGetClassObj, a client can get a proxy to a class object on the // server, so that methods introduced in the metaclass (e.g., class-specific // constructors, etc.) may be invoked directly. // // This class also defines methods for the mappings to and from SOMDObjects // and back again. (Note: SOMDObject implements a CORBA "object reference" // in DSOM. An object reference is something that is used to describe and // locate an actual target object.) These methods are used by the SOM // Object Adapter (SOMOA) when converting messages into method calls // and results into messages. // // Application-specific server methods should be defined in subclasses // of this SOMDServer subclass. // // A particular SOMDServer subclass is specified in the ImplementationDef // for each server process. The SOMOA will instantiate one instance // of the specified SOMDServer subclass during server process initialization // (in SOMOA::impl_is_ready). // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMObject: System Object Model root class // // COMPONENT_NAME: somd // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // // somdtype.idl - global DSOM type definitions // // // COMPONENT_NAME: somi // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // Contained: CORBA Interface for objects contained // in the Interface Repository. See CORBA 7.5.1 pp. 129-130 // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMObject: System Object Model root class // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version struct somModifier { string name; string value; }; // SOM-unique extension interface Container; typedef string Identifier; typedef string RepositoryId; // CORBA 7.5.1, p.130 // // The Contained interface is the most generic form of interface // for the objects in the SOM CORBA-compliant Interface Repository (IR). // All objects contained in the IR inherit this interface. // interface Contained : SOMObject { struct Description { Identifier name; any value; }; attribute Identifier name; // The value of the "name" field of the receiving object // // This is a simple name that indentifies the receiving object // within its containment hierarchy. Outside of the containment // hierarchy this name is not necessarily unique, and may require // qualification by ModuleDef name, InterfaceDef name, etc. attribute RepositoryId id; // The value of the "id" field of the receiving object // // The "id" is a string that uniquely identifies any object in // the interface repository. No qualification is needed for // an "id". Notice that "RepositoryId"s have no relationship // to the SOM type "somId". attribute RepositoryId defined_in; // The value of the "defined_in" field of the receiving object // // This "id" uniquely identifies the container where the // receiving object is defined. Objects that have global scope // and do not appear within any other objects are by default // placed in the "Repository" object. attribute sequence somModifiers; // [SOM-unique extension] // // The somModifiers attribute is a sequence containing all of // the "modifiers" attached to the corresponding IDL object in // the SOM-unique implementation section of the IDL file where // the receiving object was originally defined. sequence within(); // Returns a list of objects that contain the receiving object. // If the object is an interface or module, it can only be contained // by the object that defines it. Other objects can be contained by // objects that define or inherit them. // // When you have finished using the sequence returned by this method // it is your responsibility to release the storage allocated for it. // To free the sequence, use a call similar to the following: // // if (seqname._length) // SOMFree (seqname._buffer); Description describe(); // Returns a structure containing all of the attributes defined in // the interface of the receiving object. // // Warning: this method returns pointers to things withing objects // (for example, name). Don't use the somFree method to release // any of these objects while this information is still needed.. // // When you have finished using the information in the returned // Description structure, it is your responsibility to release // the associated storage using a call similar to the following: // // if (desc.value._value) // SOMFree (desc.value._value); }; // typedef string RepositoryId; d5959 //typedef string Identifier; d5959 // exception definitions // in somcorba.h enum completion_status { YES, NO, MAYBE }; typedef unsigned long ORBStatus; typedef sequence ReferenceData; typedef unsigned long Flags; struct NamedValue { Identifier name; any argument; long len; Flags arg_modes; }; typedef string ImplId; module SOMD { const string Version = "1.0"; }; // // COMPONENT_NAME: somu // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface SOMMSingleInstance : SOMClass // This class is a metaclass for classes which wish to enforce a // single instance rule. That is, classes which specify this class // as their metaclass will only be allowed to have a single instance. // // For example, if a class named dog specified this class as its // metaclass, only one dog object could be instantiated. Repeated // calls to _somNew on the dog class would simply return the same // dog repeatedly. // // There are two ways to retrieve the single intance of the using // class: // // 1) Invoke sommGetSingleInstance on the class object of the using class. // This is the preferred way. // // 2) Invoke somNew or somNewNoInit on the class object of the using class. // { SOMObject sommGetSingleInstance(); // Returns the single instance of the using class. // If there isn't one, then it creates one first with somNew. void sommFreeSingleInstance(); // If there isn't one, then the method does nothing. // Frees single instance of the class #ifdef __SOMIDL__ implementation { callstyle=idl; releaseorder: sommGetSingleInstance, sommFreeSingleInstance; majorversion = 2; minorversion = 1; filestem = snglicls; }; #endif }; interface SOMDObject; interface SOMDServer : SOMObject { SOMDObject somdRefFromSOMObj(in SOMObject somobj); // This method returns a DSOM object reference for a SOM object // instance in this server process. SOMOA will call this method // whenever it returns a result from a method call which includes // a pointer to a SOMObject (versus a pointer to a SOMDObject). // Ownership of the returned object reference is given to the // caller EXCEPT when the somdObjReferencesCached method returns TRUE. // When the input (somobj) is already an object reference, the default // implementation simply returns somobj, rather than creating a new reference. // (Subclasses might override this method to duplicate the input reference, however.) // Hence, callers should note when the returned value is the same as // the input (somobj) when determining whether or not to free the result. SOMObject somdSOMObjFromRef(in SOMDObject objref); // This method maps a DSOM object reference into a SOM object. // This can be done in whatever way is appropriate for the application. // This method is called by SOMOA in order to translate any method call // parameters which are object references (created from somdRefFromSOMObj // above) into SOM objects. void somdDispatchMethod(in SOMObject somobj, out somToken retValue, in somId methodId, in va_list ap); // This method is called by SOMOA to dispatch a method on a SOM object. // The intention is to give the Server object an opportunity to intercept // method calls, if desired. The parameters to this method are the same // as the parameters passed to SOMObject::somDispatch. // // The default implementation invokes SOMObject::somDispatch on the // specified target object, "somobj", with the supplied arguments. SOMObject somdCreateObj(in Identifier objclass, in string hints); // Creates an object of the specified class. This method (if overridden) // may optionally define creation "hints" which the client may specify in // this call. // // Called indirectly by SOMDObjectMgr::somdNewObject. // // The default implementation calls somdGetClassObj to get the specified // SOMClass object, and invokes "somNew". The "hints" argument is ignored // in the default implementation. void somdDeleteObj(in SOMObject somobj); // Deletes a SOM object. By default, simply calls somFree on the object. // Can be overridden by the application. // // Called indirectly by SOMDObjectMgr::somdDestroyObject. SOMClass somdGetClassObj(in Identifier objclass); // Creates/returns a class object for the specified class. // (May result in the loading of a DLL for the class.) boolean somdObjReferencesCached(); // Whether the server retains ownership of the object references // it creates via the somdRefFromSOMObj method. }; interface WPObject; interface WPDServer : SOMDServer { #ifdef __SOMIDL__ implementation { passthru C_h_after = "#define INCL_WIN" "#include " ""; passthru C_xh_after = "#define INCL_WIN" "#include " ""; externalstem = wpdserv; externalprefix = wpdserv_; callstyle = oidl; dllname = "wpdserv.dll"; }; #endif }; // Module Header // // Module Name: WPNETLNK // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPSHADOW // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPABS // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPShadow; interface WPShadow : WPAbstract { WPObject wpQueryShadowedObject(in BOOL fLock); BOOL wpSetShadowTitle(in PSZ pszNewTitle); BOOL wpSetLinkToObject(in WPObject FromObject); }; interface M_WPShadow : M_WPAbstract { }; // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPNetLink; interface WPNetLink : WPShadow { BOOL wpSetObjectNetId(in PSZ pszNetIdentity); PSZ wpQueryObjectNetId(); }; interface M_WPNetLink : M_WPShadow { }; // Module Header // // Module Name: WPQDR // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPTRANS // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPOBJECT // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPTransient; interface WPTransient : WPObject { }; interface M_WPTransient : M_WPObject { }; // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version // ------------------------------------------------------------------ // Module: wprttype.idl // // This file contains the IDL type definitions for the foreign types // used in the PrintObjects' IDL files. // interface M_WPQdr; interface WPQdr : WPTransient { }; interface M_WPQdr { }; // Module Header // // Module Name: WPSTART // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPFOLDER // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPStartup; interface WPStartup : WPFolder { }; interface M_WPStartup : M_WPFolder { }; // Module Header // // Module Name: WPABS // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPFNTPAL // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPPALET // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPABS // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPPalette; interface WPPalette : WPAbstract { void wpPaintCell(in PCELL pCell, in HPS hps, in PRECTL prcl, in BOOL fHilite); BOOL wpSetupCell(in PVOID pCellData, in ULONG cb, in ULONG x, in ULONG y); BOOL wpRedrawCell(in PCELL pCell); BOOL wpQueryPaletteInfo(in PPALINFO pPalInfo); BOOL wpSetPaletteInfo(in PPALINFO pPalInfo); BOOL wpEditCell(in PCELL pCell, in HWND hwndPal); BOOL wpDragCell(in PCELL pCell, in HWND hwndPal, in PPOINTL ptlDrag); ULONG wpQueryPaletteHelp(); void wpSelectCell(in HWND hwndPal, in PCELL pCell); void wpPaintPalette(in HPS hps, in PRECTL prcl); BOOL wpInitCellStructs(); BOOL wpSaveCellData(in PCELL pCell, in ULONG ulIndex); BOOL wpRestoreCellData(inout PCELL pCell, in ULONG ulIndex, in ULONG ulCellSize); }; interface M_WPPalette : M_WPAbstract { PSZ wpclsQueryEditString(); }; // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPFontPalette; interface WPFontPalette : WPPalette { void wpGetFattrsFromPsz(in PSZ pszFont, in PFATTRS pFattrs); }; interface M_WPFontPalette : M_WPPalette { }; // Module Header // // Module Name: WPNETWRK // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPFOLDER // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPNetwork; interface WPNetwork : WPFolder { }; interface M_WPNetwork : M_WPFolder { }; // Module Header // // Module Name: WPROOTF // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPFOLDER // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPRootFolder; interface WPRootFolder : WPFolder { }; interface M_WPRootFolder : M_WPFolder { }; // Module Header // // Module Name: WPSYSTEM // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPABS // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPSystem; interface WPSystem : WPAbstract { ULONG wpAddSystemWindowPage(in HWND hwndNotebook); ULONG wpAddSystemLogoPage(in HWND hwndNotebook); ULONG wpAddSystemPrintScreenPage(in HWND hwndNotebook); ULONG wpAddSystemInputPage(in HWND hwndNotebook); ULONG wpAddSystemConfirmationPage(in HWND hwndNotebook); ULONG wpAddTitleConfirmationPage(in HWND hwndNotebook); ULONG wpAddSystemScreenPage(in HWND hwndNotebook); ULONG wpAddDMQSDisplayTypePage(in HWND hwndNotebook); ULONG wpAddSysFdrSelfClosePage (in HWND hwndNotebook); ULONG wpAddSysFdrDefViewPage (in HWND hwndNotebook); }; interface M_WPSystem : M_WPAbstract { }; // Module Header // // Module Name: WPBITMAP // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPDATAF // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPBitmap; interface WPBitmap : WPDataFile { }; interface M_WPBitmap : M_WPDataFile { }; // Module Header // // Module Name: WPFOLDER // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPOBJECT // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPRPRINT // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPPRINT // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPRPrinter; interface WPRPrinter : WPPrinter { BOOL wpAddNetworkPage(in HWND hwndNotebook); BOOL wpQueryNetworkId(in PSZ pBuf, in PULONG pcbBuf); BOOL wpQueryLocalAlias(in PSZ pBuf, in PULONG pcbBuf); }; interface M_WPRPrinter { }; // Module Header // // Module Name: WPTEMPS // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPFOLDER // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPTemplates; interface WPTemplates : WPFolder { }; interface M_WPTemplates : M_WPFolder { }; // Module Header // // Module Name: WPCLOCK // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPABS // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPClock; interface WPClock : WPAbstract { ULONG wpAddClockView1Page(in HWND hwndNotebook); ULONG wpAddClockView2Page(in HWND hwndNotebook); ULONG wpAddClockDateTimePage(in HWND hwndNotebook); ULONG wpAddClockAlarmPage(in HWND hwndNotebook); }; interface M_WPClock : M_WPAbstract { }; // Module Header // // Module Name: WPFSYS // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1994 // // Module Header // // Module Name: WPPALET // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // ------------------------------------------------------------------ // Module: wprttype.idl // // This file contains the IDL type definitions for the foreign types // used in the PrintObjects' IDL files. // // Module Header // // Module Name: WPTRANS // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPCLRPAL // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPPALET // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPColorPalette; interface WPColorPalette : WPPalette { }; interface M_WPColorPalette : M_WPPalette { }; // Module Header // // Module Name: WPICON // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPDATAF // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPIcon; interface WPIcon : WPDataFile { }; interface M_WPIcon : M_WPDataFile { }; // Module Header // // Module Name: WPPDR // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPTRANS // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version // ------------------------------------------------------------------ // Module: wprttype.idl // // This file contains the IDL type definitions for the foreign types // used in the PrintObjects' IDL files. // interface M_WPPdr; interface WPPdr : WPTransient { }; interface M_WPPdr { }; // Module Header // // Module Name: WPSCHEME // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPPALET // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPSchemePalette; interface WPSchemePalette : WPPalette { }; interface M_WPSchemePalette : M_WPPalette { }; // ------------------------------------------------------------------ // File: wptypes.idl // // This file contains the IDL type definitions for the foreign types // defined in the WPSH IDL files. // // ------------------------------------------------------------------ // Module Header // // Module Name: WPCLSMGR // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClassMgr: System Object Model class manager // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMObject: System Object Model root class interface Repository; interface SOMClassMgr : SOMObject { // [Basic Functions Group] typedef SOMClass SOMClassArray; // Used for SOM 1.0 binary compatibility SOMClass somLoadClassFile(in somId classId, in long majorVersion, in long minorVersion, in string file); // Loads the class' code and initializes the class object. string somLocateClassFile(in somId classId, in long majorVersion, in long minorVersion); // Real implementation supplied by subclasses. Default implementation // will lookup the class name in the Interface Repository (if one is // available) to determine the implementation file name (ie, DLL name). // If this information is not available, the class name itself is // returned as the file name. Subclasses may use version number // info to assist in deriving the file name. void somRegisterClass(in SOMClass classObj); // Lets the class manager know that the specified class is installed // and tells it where the class object is. void somRegisterClassLibrary (in string libraryName, in somMethodPtr libraryInitRtn); // Informs the class manager that a class library has been loaded. // "libraryName" is the name associated with the file containing the // implementation(s) of the class(es) in the class library. // "libraryInitRtn" is the entry point of a SOMInitModule function // that can be used to initialize the class library. For platforms // that have the capability to automatically invoke a library // initialization function whenever a library is loaded, a call // to this method should occur within the library's automatic init // function. long somUnloadClassFile(in SOMClass classObj); // Releases the class' code and unregisters all classes in the // same affinity group (see somGetRelatedClasses below). long somUnregisterClass(in SOMClass classObj); // Free the class object and removes the class from the SOM registry. // If the class caused dynamic loading to occur, it is also unloaded // (causing its entire affinity group to be unregistered as well). void somBeginPersistentClasses(); // Starts a bracket for the current thread wherein all classes // that are registered are marked as permanant and cannot be // unregistered or unloaded. Persistent classes brackets may be // nested. void somEndPersistentClasses(); // Ends a persistent classes bracket for the current thread. boolean somJoinAffinityGroup(in SOMClass newClass, in SOMClass affClass); // If is a member of an affinity group, and is not a // member of any affinity group, this method adds to the // same affinity group as . If the method succeeds it returns // TRUE, otherwise it returns FALSE. Adding a class to an affinity group // effectively equates its lifetime with that of the other members of // the affinity group. // [Access Group] string somGetInitFunction(); // The name of the initialization function in the class' code file. // Default implementation returns (SOMClassInitFuncName)(). attribute Repository somInterfaceRepository; // The Repository object that provides access to the Interface Repository, // If no Interface Repository has yet been assigned to this attribute, // and the SOMClassMgr is unable to load and instantiate it, the attribute // will have the value NULL. When finished using the Repository object // you should release your reference using the somDestruct method with // a non-zero parameter. readonly attribute sequence somRegisteredClasses; // A list of all classes currently registered in this process. SOMClassArray somGetRelatedClasses(in SOMClass classObj); // Returns an array of class objects that were all registered during // the dynamic loading of a class. These classes are considered to // define an affinity group. Any class is a member of at most one // affinity group. The affinity group returned by this call is the // one containing the class identified by classObj. The first element // in the array is the class that caused the group to be loaded, or the // special value -1 which means that the SOMClassMgr is currently in the // process of unregistering and deleting the affinity group (only // SOMClassMgr subclasses would ever see this value). // The remainder of the array (elements one thru n) consists of // pointers to class objects ordered in reverse chronological sequence // to that in which they were originally registered. This list includes // the given argument, classObj, as one of its elements, as well as the // class, if any, returned as element[0] above. The array is terminated // by a NULL pointer as the last element. Use SOMFree to release the // array when it is no longer needed. If the supplied class was not // dynamically loaded, it is not a member of any affinity // group and NULL is returned. // [Dynamic Group] SOMClass somClassFromId(in somId classId); // Finds the class object, given its Id, if it already exists. // Does not load the class. Returns NULL if the class object does // not yet exist. SOMClass somFindClass(in somId classId, in long majorVersion, in long minorVersion); // Returns the class object for the specified class. This may result // in dynamic loading. Uses somLocateClassFile to obtain the name of // the file where the class' code resides, then uses somFindClsInFile. SOMClass somFindClsInFile(in somId classId, in long majorVersion, in long minorVersion, in string file); // Returns the class object for the specified class. This may result // in dynamic loading. If the class already exists is ignored, // otherwise it is used to locate and dynamically load the class. // Values of 0 for major and minor version numbers bypass version checking. void somMergeInto(in SOMObject targetObj); // Merges the SOMClassMgr registry information from the receiver to // . is required to be an instance of SOMClassMgr // or one of its subclasses. At the completion of this operation, // the should be able to function as a replacement for the // receiver. At the end of the operation the receiver object (which is // then in a newly uninitialized state) is freed. Subclasses that // override this method should similarly transfer their sections of // the object and pass this method to their parent as the final step. // If the receiving object is the distinguished instance pointed to // from the global variable SOMClassMgrObject, SOMCLassMgrObject is // then reassigned to point to . long somSubstituteClass(in string origClassName, in string newClassName); // This method causes the somFindClass, somFindClsInFile, and // somClassFromId methods to return the class named newClassName // whenever they would have normally returned the class named // origClassName. This effectively results in class // replacing or substituting itself for class . // Some restrictions are enforced to insure that this works well. // Both class and class must // have been already registered before issuing this method, and newClass // must be an immediate child of origClass. In addition (although not // enforceable), no instances should exist of either class at the time // this method is invoked. A return value of zero indicates success; // a non-zero value indicates an error was detected. }; // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface WPObject; interface WPClassManager : SOMClassMgr { BOOL wpReplacementIsInEffect(in PSZ pszOldClass, in PSZ pszNewClass ); PSZ wpModuleForClass(in PSZ pszClass); PSZ wpGetTrueClassName(in WPObject Object); }; // Module Header // // Module Name: WPJOB // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPTRANS // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version // ------------------------------------------------------------------ // Module: wprttype.idl // // This file contains the IDL type definitions for the foreign types // used in the PrintObjects' IDL files. // interface WPPrinter; interface M_WPJob; interface WPJob : WPTransient // // CLASS: WPJob // // CLASS HIERARCHY: // SOMObject // Áýý WPObject // Áýý WPTransient // Áýý WPJob // // DESCRIPTION: // This is the job object class. // An instance of this class is created by the Print Destination object // in its icon or detail view. // { BOOL wpDeleteJob(); // Delete a job object BOOL wpHoldJob(); // Hold printing a job object BOOL wpReleaseJob(); // Release printing a job object BOOL wpPrintJobNext(); // Move this job object to be printed next BOOL wpStartJobAgain(); // Start the job again WPObject wpQueryPrintObject(); // Return a pointer to the PrintObject this job is in. ULONG wpQueryJobId(); // Returns the JobId of this job BOOL wpQueryJobFile(in PSZ pBuf, in PULONG pcbBuf ); // Return the spool file name in the pBuf BOOL wpQueryJobType(in PSZ pBuf, in PULONG pcbBuf); // Return the job type int pBuf }; interface M_WPJob { }; // Module Header // // Module Name: WPPGM // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPABS // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPProgram; interface WPProgram : WPAbstract { ULONG wpAddProgramAssociationPage(in HWND hwndNotebook); BOOL wpQueryProgDetails(in PPROGDETAILS pProgDetails, in PULONG pulSize); BOOL wpSetProgDetails(in PPROGDETAILS pProgDetails); ULONG wpAddProgramPage(in HWND hwndNotebook); ULONG wpAddProgramSessionPage(in HWND hwndNotebook); PSZ wpQueryAssociationFilter(); PSZ wpQueryAssociationType(); BOOL wpSetAssociationFilter(in PSZ pszFilter); BOOL wpSetAssociationType(in PSZ pszType); PSZ wpQueryProgramAssociations( in PBYTE ptr, in PSZ pszAssoc, in BOOL fFilter ); BOOL wpSetProgramAssociations( in PSZ pszAssoc, in BOOL fFilter ); BOOL wpSetProgIcon(in PFEA2LIST pfeal); }; interface M_WPProgram : M_WPAbstract { }; // Module Header // // Module Name: WPSERVER // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPFOLDER // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPServer; interface WPServer : WPFolder { ULONG wpAddServerPage(in HWND hwndNotebook); PSZ wpQuerySrvrIdentity(); }; interface M_WPServer : M_WPFolder { }; // Module Header // // Module Name: WPCMDF // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPPGMF // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPDATAF // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPProgramFile; interface WPProgramFile : WPDataFile { ULONG wpAddProgramAssociationPage(in HWND hwndNotebook); BOOL wpQueryProgDetails(in PPROGDETAILS pProgDetails, in PULONG pulSize); BOOL wpSetProgDetails(in PPROGDETAILS pProgDetails); ULONG wpAddProgramPage(in HWND hwndNotebook); ULONG wpAddProgramSessionPage(in HWND hwndNotebook); PSZ wpQueryAssociationFilter(); PSZ wpQueryAssociationType(); BOOL wpSetAssociationFilter(in PSZ pszFilter); BOOL wpSetAssociationType(in PSZ pszType); PSZ wpQueryProgramAssociations( in PBYTE ptr, in PSZ pszAssoc, in BOOL fFilter ); BOOL wpSetProgramAssociations( in PSZ pszAssoc, in BOOL fFilter ); BOOL wpSetProgIcon(in PFEA2LIST pfeal); }; interface M_WPProgramFile : M_WPDataFile { }; // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPCommandFile; interface WPCommandFile : WPProgramFile { }; interface M_WPCommandFile : M_WPProgramFile { }; // Module Header // // Module Name: WPKEYBD // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPABS // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPKeyboard; interface WPKeyboard : WPAbstract { ULONG wpAddKeyboardMappingsPage(in HWND hwndNotebook); ULONG wpAddKeyboardTimingPage(in HWND hwndNotebook); ULONG wpAddKeyboardSpecialNeedsPage(in HWND hwndNotebook); }; interface M_WPKeyboard : M_WPAbstract { }; // Module Header // // Module Name: WPPGMF // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPSHADOW // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPCTRY // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // Module Header // // Module Name: WPABS // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version interface M_WPCountry; interface WPCountry : WPAbstract { ULONG wpAddCountryTimePage(in HWND hwndNotebook); ULONG wpAddCountryDatePage(in HWND hwndNotebook); ULONG wpAddCountryNumbersPage(in HWND hwndNotebook); ULONG wpAddCountryPage(in HWND hwndNotebook); }; interface M_WPCountry : M_WPAbstract { }; // Module Header // // Module Name: WPLNCHPD // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992, 1994 // // Module Header // // Module Name: WPABS // // OS/2 Presentation Manager Workplace class definitions // // Copyright (c) International Business Machines Corporation 1991, 1992 // // // COMPONENT_NAME: somk // // ORIGINS: 27 // // // 10H9767, 10H9769 (C) COPYRIGHT International Business Machines Corp. 1992,1994 // All Rights Reserved // Licensed Materials - Property of IBM // US Government Users Restricted Rights - Use, duplication or // disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // // SOMClass: System Object Model base metaclass // Multiple Inheritance Version struct tag_Actions { PSZ pszTitle; ULONG ulMenuId; HPOINTER hIcon; }; typedef tag_Actions ACTIONS; typedef tag_Actions PACTIONS; struct tag_FPINFO { ULONG ulNumObjects; HOBJECT phobjects; //tag_FPINFO slideups; HWND hwndSlideup; }; typedef tag_FPINFO FPINFO; typedef tag_FPINFO PFPINFO; interface M_WPLaunchPad; interface WPLaunchPad : WPAbstract { ULONG wpAddLaunchPadPage1(in HWND hwndNotebook); ULONG wpAddLaunchPadPage2(in HWND hwndNotebook); BOOL wpQueryCloseDrawer(); BOOL wpQueryDisplayVertical(); BOOL wpQueryDisplayText(); BOOL wpQueryDisplayTextInDrawers(); BOOL wpQueryDisplaySmallIcons(); BOOL wpQueryHideLaunchPadFrameCtls(); BOOL wpQueryFloatOnTop(); void wpSetCloseDrawer(in BOOL fState); void wpSetDisplayVertical(in BOOL fState); void wpSetDisplayText(in BOOL fState); void wpSetDisplayTextI