home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
som30tk.zip
/
som30os2.zip
/
include
/
somproxy.idl
< prev
next >
Wrap
Text File
|
1996-12-24
|
3KB
|
86 lines
//
// COMPONENT_NAME: somm
//
// ORIGINS: 27
//
//
// 25H7912 (C) COPYRIGHT International Business Machines Corp. 1992,1996,1996
// 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.
//
// @(#)15 1.17 3/29/96 15:41:39 [12/24/96] (c)IBM Corp. 1995
#ifndef somproxy_idl
#define somproxy_idl
#include <somcls.idl>
interface SOMMProxyFor
: SOMClass
{
SOMClass sommMakeProxyClass( in SOMClass targetClass,
in string className );
// sommMakeProxyClass returns a class that is the join
// (in the sense of multiple inheritance) of somSelf and
// the targetClass (for which abstract inheritance is used,
// i.e., the interface is inherited but not the implementation).
// The returned class has the name className (which must be
// unique among the registered classes). If the parameter
// className is NULL or empty, sommMakeProxyClass constructs
// a unique name that starts with
// ProxyFor<name of targetClass>
implementation {
releaseorder: sommMakeProxyClass;
callstyle = oidl;
// oidl callstyle is used here because none of the
// introduced methods are ever forwarded.
dllname = "somu.dll";
};
};
interface SOMMProxyForObject: SOMObject
{
attribute SOMObject sommProxyTarget;
// An object used by sommProxyDispatch to determine the target
// object to which a method invocation should be forwarded.
struct sommProxyDispatchInfo {
somMethodData md;
somMethodPtr dispatchFcn;
};
boolean sommProxyDispatch( out somToken returnBufferPointer,
in sommProxyDispatchInfo dispatchInfo,
in va_list ap );
// sommProxyDispatch is used to forward method invocations to
// the target object from methods supported by the proxy class.
// The default implementation assumes that _sommTarget is a pointer
// to the target object (in the same address space), and that the
// method data within the dispatchInfo was acquired from the target
// class.
// sommProxyDispatch should not be invoked from outside of the
// proxy class because such an invocation bypasses any override
// of the method or any behavior added by a metaclass.
implementation {
releaseorder: _get_sommProxyTarget,
_set_sommProxyTarget,
sommProxyDispatch;
callstyle = oidl;
// oidl callstyle is used here because none of the
// introduced methods are ever forwarded.
metaclass = SOMMProxyFor;
dllname = "somu.dll";
};
};
#endif