//  @(#) 1.4 com/src/samples/scrbase/iodscrbc.idl, odbasescript, od96nt, odnt9712d 1/22/97 15:43:25 [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 _IODSCRBC
#define _IODSCRBC

#include <iodbasec.idl>
//======================================================================
// Interfaces used in this file
//======================================================================
interface ODMenuBar;
interface ODS_BaseContainer ;
//======================================================================
// Classes defined in this file
//======================================================================
interface ScriptableBaseContainer;
interface  M_ScriptableBaseContainer;

//======================================================================
// ScriptableBaseContainer Implementation
//======================================================================

interface ScriptableBaseContainer : BaseContainer {

  // Scriptable Interface

  void         SelectAllParts();
  boolean      EmbedPart(in string partKind, in long x, in long y);
  attribute long BackgroundColor;

#ifdef __PRIVATE__
  // this is made an attribute so that it can be accessed/set by
  // classes which inherit from this base class.
  attribute ODS_BaseContainer   fScriptExtension ;
#endif

  // Implementation

  void         AbortMenuSelection();
  void         SelectMenuItem(in long menuId);
  ALinkedList  AcquireContentList();
  void         ReleaseContentList(in ALinkedList list);
  void         PartAdded(in ContentFrame cf);
  void         PartRemoved(in ODPart part);
  void         ContentChangeCheck(in ALinkedList list);
  ODBoolean    ContainsPart(in ODPart part, in ALinkedList list);

#ifdef __SOMIDL__
  implementation {
    dllname = "iodscrbc.dll";
    functionprefix = ScriptableBaseContainer;
    metaclass      = M_ScriptableBaseContainer;
    ODGuid = "{5b3cc201-1816-11d0-ba74-08005aa56cee}";
    override: somInit,
              somUninit,
              HasExtension,
              AcquireExtension,
              ReleaseExtension,
              InstallMenuItems,
              HandleMenuEvent,
              AdjustMenus,
              Embed,
              RequestEmbeddedFrame,
              RemoveEmbeddedFrame,
              DisplayFrameClosed,
              DisplayFrameRemoved,
              PasteSelection,
              DeleteSelection,
              Drop,
              ReadContents,
              Externalize,
              InitPartFromStorage,
              CloneInto,
              FacetAdded;

    ODBoolean           fDoMenuSelection;

    ODMenuBar                  fMenuBar;
    BackgroundColor:noget;
    BackgroundColor:noset;
    releaseorder: _get_BackgroundColor,
                  _set_BackgroundColor,
                  SelectAllParts,
                  EmbedPart,
                  AcquireContentList,
                  ReleaseContentList,
                  PartAdded,
                  PartRemoved,
                  ContentChangeCheck,
                  ContainsPart,
                  SelectMenuItem,
                  AbortMenuSelection,
                  _get_fScriptExtension,
                  _set_fScriptExtension;

    // Expose Scriptable Interface
    SelectAllParts:ODid=100;
    EmbedPart:ODid=101;
    BackgroundColor:ODid ;

  };
#endif

};

// ******************************************************************

interface M_ScriptableBaseContainer : M_ODPart
{

#ifdef __SOMIDL__
  implementation
  {
    functionprefix = M_ScriptableBaseContainerPart;
    dllname = "iodscrbc.dll";
    override:
      clsGetODPartHandlerName,
      clsGetODPartHandlerDisplayName,
      clsGetODPartKinds,
      clsGetOLE2ClassId,
      clsGetWindowsIconFileName;
  };

#endif  // _SOMIDL__
};

#endif
