/* @(#)Z 1.5.1.12 com/src/core/idl/ODSessn.idl, odcore, od96nt, odnt9712d 97/03/21 16:44:25 (97/03/11 15:31:18) */
//#====START_GENERATED_PROLOG======================================
//#
//#
//#   COMPONENT_NAME: odcore
//#
//#   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========================================
//#

#ifdef __PRIVATE__
//#
//#    File:           ODSessn.idl
//#
//#    Contains:       Interface for ODSession class
//#
//#    Owned by:       Nick Pilch
//#
//#    Copyright:      (r) 1993 - 1995 by Apple Computer, Inc., all rights reserved.
//#
//#    Change History (most recent first):
//#
//#            <17>     4/10/95        NP              1287722: Change signature of
//#                                                                    ODSession::GetUserName.
//#            <16>     8/16/95        NP              1275241: IDL Review. Add version.
//#            <15>      8/3/95        RR              #1257260: Collapse B classes. Remove
//#                                                                    somInit methods. Don't call IsInitialized
//#                                                                    or SubclassResponsibility
//#            <14>     5/25/95        VL              1251403: Multithreading naming support.
//#            <13>     10/7/94        CC              1191489 - Moved UniqueChangeID() in from
//#                                                                    base class.
//#            <12>     8/19/94        NP              1181622: Ownership fix.
//#            <11>     8/12/94        NP              1180762-Added setters. changed getusername.
//#                                                                    Removed GetSemtInterface.
//#            <10>     7/29/94        CG              Got rid of Object registration calls.
//#             <9>     7/11/94        Te              added GetInfo, SetInfo, _fInfo
//#             <8>     6/30/94        CG              Uncommented messaging-related fields and
//#                                                                    methdos.
//#             <7>     6/23/94        CG              Added functionprefix, temporary comments.
//#             <6>     6/19/94        MB              Implement GetDefaultHeap
//#             <5>     6/18/94        MB              Add GetDefaultHeap to session
//#             <4>     6/14/94        CG              Moved NameSpaceManager and Binding to
//#                                                                    ODSession instead of ODBaseSession.
//#             <3>      6/8/94        CG              Forgot #endif.
//#             <2>      6/8/94        CG              Privatize change history.
//#             <1>      6/8/94        CG              first checked in
//#             <5>      6/1/94        RR              Parameter to Tokenize is in, not inout
//#
//#    To Do:
//#
#else
//#    Copyright:      (r) 1993 - 1995 by Apple Computer, Inc., all rights reserved.
#endif

#ifndef _ODSESSN_
#define _ODSESSN_

#ifndef _ODSESSNB_
#include "ODSessnB.idl"
#endif

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

interface   ODPartHandlerRegistryInt;


//==============================================================================
// Classes defined in this interface
//==============================================================================

interface   ODSession;

#ifdef _PLATFORM_WIN32_
    interface   OpenDocShell;
    interface   ODHelp;
#endif // _PLATFORM_WIN32_

#ifdef _PLATFORM_UNIX_
    interface   ODHelp;
    typedef somToken XLinkInfoList;
#endif // _PLATFORM_UNIX_

//==============================================================================
// ODSession
//==============================================================================

interface ODSession :  ODBaseSession
{

#ifdef _PLATFORM_WIN32_
   void        InitSession(in OpenDocShell shell);
#else
   void        InitSession();
#endif

   void        GetUserName(out ODIText *name);

  //#---------------------------------
  //# Data Interchange

   ODUpdateID UniqueUpdateID();

#ifndef _PLATFORM_OS2_
   ODHelp GetHelp();
#endif //not _PLATFORM_OS2_

#ifdef _PLATFORM_UNIX_
   XLinkInfoList* GetSessionLinkSrcList();
   XLinkInfoList* GetSessionLinkDstList();
#endif

   ODPartHandlerRegistryInt GetRegistry();

#ifdef __PRIVATE__
   void SetRegistry(in ODPartHandlerRegistryInt registry);
#endif

#ifdef __SOMIDL__
       implementation
       {
               majorversion = 1; minorversion = 0;

               functionprefix = ODSession;

               #ifdef _PLATFORM_WIN32_
               #ifdef __PRIVATE__
                   passthru C_xh = "#include <ODShell.xh>";
               #endif
               #endif

               #ifdef _PLATFORM_UNIX_
                   passthru C_xh = 
			""
			"#ifndef SOM_ODLinkHlpr_h"
			"#include <LinkHlpr.h>"
			"#endif"
			"";
               #endif // _PLATFORM_UNIX_

               override:
                       somUninit,
                       Purge;

               releaseorder:
                       UniqueUpdateID
                       , GetUserName
                       , InitSession
    #ifndef _PLATFORM_OS2_
                       , GetHelp
    #endif //not _PLATFORM_OS2_
    #ifdef _PLATFORM_UNIX_
		       , GetSessionLinkSrcList
                       , GetSessionLinkDstList
    #endif //_PLATFORM_UNIX_
		       , GetRegistry
    #ifdef __PRIVATE__
		       , SetRegistry
    #else
                       , reserved1
    #endif
		       ;

    #ifdef __PRIVATE__

      #ifndef _PLATFORM_OS2_
         ODHelp fHelp;
      #endif // not _PLATFORM_OS2_

      #ifdef _PLATFORM_UNIX_
	 XLinkInfoList*  SessionLinkSrcList;
   	 XLinkInfoList*  SessionLinkDstList;
      #endif //_PLATFORM_UNIX_

         ODPartHandlerRegistryInt fODRegistry;

    #endif // __PRIVATE__
  };
#endif
};


#endif // _ODSESSN_
