//  @(#) 1.5 com/src/samples/scrbase/iodbcext.idl, odbasescript, od96nt, odnt9712d 1/22/97 15:43:23 [3/21/97 17:38:32]
//#====START_GENERATED_PROLOG======================================
//#
//#
//#   COMPONENT_NAME: odsamples
//#
//#   CLASSES: none
//#
//#   ORIGINS: 82,27
//#
//#
//#   (C) COPYRIGHT International Business Machines Corp. 1995,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.
//#
//#   IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
//#   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
//#   PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR
//#   CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
//#   USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
//#   OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
//#   OR PERFORMANCE OF THIS SOFTWARE.
//#
//#====END_GENERATED_PROLOG========================================
//#

#ifndef _IODBCEXT
#define _IODBCEXT
//==============================================================================
// Classes defined in this interface
//==============================================================================

interface   ODS_BaseContainer ;

//==============================================================================
// Classes used by this interface
//==============================================================================

interface ScriptableBaseContainer ;
interface ODScriptExtension ;
interface ODDSConnection ;
interface ODPart ;

//==============================================================================
// OD Scripting Extension
//==============================================================================

#include <screxten.idl>
#include <oddsconn.idl>

interface ODS_BaseContainer : ODScriptExtension, ODDSConnection
{

//  New public Methods

    void     SelectAllParts();
    boolean  EmbedPart(in string partKind, in long x, in long y);
    long     SelectMenuItem(in long menuId);

    void     TriggerMenuEvent(in long command);
    void     TriggerPartAdded();
    void     TriggerPartRemoved();
    void     TriggerPartContentsInitialized();

    void     PartAdded(in ODPart part);
    void     PartRemoved(in ODPart part);

  attribute long    BackgroundColor;
  attribute boolean DoMenuSelection;


#ifdef __SOMIDL__
        implementation
        {
            functionprefix = SBCExt_ ;

#ifdef __PRIVATE__

// instance data
     ODDSEventMgr fEventManager;
     ODGUID       fODGuid ;
     ScriptableBaseContainer fOwner ;

#endif

     InitScriptExtension     :override ;
     Register                :override ;
     DeRegister              :override ;
     AddContainedPart        :override ;
     DropContainedPart       :override ;
     somDefaultInit          :override, init ;
     somDestruct             :override ;
     BackgroundColor         :noget;
     BackgroundColor         :noset;
     DoMenuSelection         :noset;
     DoMenuSelection         :noget;


     releaseorder: TriggerMenuEvent,
                   TriggerPartAdded,
                   TriggerPartRemoved,
                   TriggerPartContentsInitialized,
                   PartAdded,
                   PartRemoved,
                   SelectAllParts,
                   EmbedPart,
                   SelectMenuItem,
                   _get_BackgroundColor,
                   _set_BackgroundColor,
                   _get_DoMenuSelection,
                   _set_DoMenuSelection;


    BackgroundColor:ODid ;
    DoMenuSelection:ODid;

    SelectAllParts :ODid;
    EmbedPart      :ODid;
    SelectMenuID   :ODid;

    ODevent="BCPartEvent"; // point to event description

    passthru C_xih_before = "#include \"iodscrbc.xh\""
    ;

        };
#endif
};

#endif // _IODBCEXT
