
/*
 * This file was generated by the SOM Compiler.
 * FileName: \odwin\h\LINKSRCB.h.
 * Generated using:
 *     SOM Precompiler somipc: 2.29.1.3
 *     SOM Emitter emith.dll: 2.41
 */

/*
 * 
 *  Theory of Operation
 * 
 * 
 *   This class is used to represent the source side of OpenDoc links. ODDrafts
 *   create and own these links. The source ODPart will ask the draft to create
 *   an ODLinkSource and an ODLink pair, and return the ODLink object to the
 *   the destination part.  The destination part uses the ODLink object to
 *   extract the contents of the link.
 * 
 *  Classes defined in this interface
 * 
 */


#ifndef SOM_ODBaseLinkSource_h
#define SOM_ODBaseLinkSource_h


#include <som.h>

/*
 * -- This emitter treats Method Tokens as Thunks by default.
 * -- Use the sc modifier "nothunks" to change this default
 */
#undef somresolve_
#define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))



/*
 * Define class data structures as resolution macros
 */
#define ODBaseLinkSourceClassData (*resolve_ODBaseLinkSourceClassData())
#define ODBaseLinkSourceCClassData (*resolve_ODBaseLinkSourceCClassData())

/*
 * Define the class name as an object type
 */
#ifndef ODBaseLinkSource
#define ODBaseLinkSource SOMObject
#endif
#include <PstObj.h>

/*
 * Start of user-defined types:
 */
#ifndef SOMClass
    #define SOMClass SOMObject
#endif /* SOMClass */
#ifndef ODObject
    #define ODObject SOMObject
#endif /* ODObject */
#ifndef ODExtension
    #define ODExtension SOMObject
#endif /* ODExtension */
#ifndef ODRefCntObject
    #define ODRefCntObject SOMObject
#endif /* ODRefCntObject */
#ifndef ODPersistentObject
    #define ODPersistentObject SOMObject
#endif /* ODPersistentObject */
#ifndef ODStorageUnit
    #define ODStorageUnit SOMObject
#endif /* ODStorageUnit */
#ifndef ODFrame
    #define ODFrame SOMObject
#endif /* ODFrame */
#ifndef ODBaseLinkSource
    #define ODBaseLinkSource SOMObject
#endif /* ODBaseLinkSource */
#ifndef ODPart
    #define ODPart SOMObject
#endif /* ODPart */
#ifndef ODPartList
    #define ODPartList SOMObject
#endif /* ODPartList */
#ifndef ODLink
    #define ODLink SOMObject
#endif /* ODLink */
#ifndef ODDraft
    #define ODDraft SOMObject
#endif /* ODDraft */
#ifndef ODFacet
    #define ODFacet SOMObject
#endif /* ODFacet */

/*
 * End of user-defined types.
 */

#define ODBaseLinkSource_MajorVersion 1
#define ODBaseLinkSource_MinorVersion 0

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define ODBaseLinkSourceNewClass c
#define ODBaseLinkSourceClassData d
#define ODBaseLinkSourceCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define ODBaseLinkSource_classObj ODBaseLinkSourceClassData.classObject
#define _ODBaseLinkSource ODBaseLinkSource_classObj

/*
 * Declare the class creation procedure
 */
SOMEXTERN SOMClass * SOMLINK ODBaseLinkSourceNewClass(integer4 somntmajorVersion,
		integer4 somntminorVersion);

/*
 * Declare the class data structure
 */
SOMEXTERN struct ODBaseLinkSourceClassDataStructure {
	SOMClass *classObject;
	somMToken Lock;
	somMToken Unlock;
	somMToken Clear;
	somMToken GetContentStorageUnit;
	somMToken ContentChanged;
	somMToken GetChangeID;
	somMToken SetAutoUpdate;
	somMToken IsAutoUpdate;
	somMToken GetLink;
	somMToken SetSourcePart;
	somMToken ShowSourceContent;
	somMToken GetChangeTime;
	somMToken ShowLinkSourceInfo;
}  _ODBaseLinkSourceClassData;
SOMEXTERN struct ODBaseLinkSourceClassDataStructure * SOMLINK resolve_ODBaseLinkSourceClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct ODBaseLinkSourceCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _ODBaseLinkSourceCClassData;
SOMEXTERN struct ODBaseLinkSourceCClassDataStructure * SOMLINK resolve_ODBaseLinkSourceCClassData(void);

/*
 * New and Renew macros for ODBaseLinkSource
 */
#define ODBaseLinkSourceNew() \
   (_somNew(_ODBaseLinkSource ? _ODBaseLinkSource : ODBaseLinkSourceNewClass(ODBaseLinkSource_MajorVersion, ODBaseLinkSource_MinorVersion)))
#define ODBaseLinkSourceRenew(buf) \
   (_somRenew(_ODBaseLinkSource ? _ODBaseLinkSource : ODBaseLinkSourceNewClass(ODBaseLinkSource_MajorVersion, ODBaseLinkSource_MinorVersion), buf))

/*
 * New Method: Lock
 */
typedef ODBoolean   (SOMLINK * somTD_ODBaseLinkSource_Lock)(ODBaseLinkSource *somSelf, Environment *ev,
		ODULong wait,
		ODLinkKey* key);
#define somMD_ODBaseLinkSource_Lock "::ODBaseLinkSource::Lock"
#define ODBaseLinkSource_Lock(somSelf,ev,wait,key) \
    (SOM_Resolve(somSelf, ODBaseLinkSource, Lock) \
	(somSelf,ev,wait,key))
#ifndef SOMGD_Lock
    #if (defined(_Lock) || defined(__Lock))
        #undef _Lock
        #undef __Lock
        #define SOMGD_Lock 1
    #else
        #define _Lock ODBaseLinkSource_Lock
    #endif /* _Lock */
#endif /* SOMGD_Lock */

/*
 * New Method: Unlock
 */
typedef void   (SOMLINK * somTD_ODBaseLinkSource_Unlock)(ODBaseLinkSource *somSelf, Environment *ev,
		ODLinkKey key);
#define somMD_ODBaseLinkSource_Unlock "::ODBaseLinkSource::Unlock"
#define ODBaseLinkSource_Unlock(somSelf,ev,key) \
    (SOM_Resolve(somSelf, ODBaseLinkSource, Unlock) \
	(somSelf,ev,key))
#ifndef SOMGD_Unlock
    #if (defined(_Unlock) || defined(__Unlock))
        #undef _Unlock
        #undef __Unlock
        #define SOMGD_Unlock 1
    #else
        #define _Unlock ODBaseLinkSource_Unlock
    #endif /* _Unlock */
#endif /* SOMGD_Unlock */

/*
 * New Method: Clear
 */
typedef void   (SOMLINK * somTD_ODBaseLinkSource_Clear)(ODBaseLinkSource *somSelf, Environment *ev,
		ODChangeID id,
		ODLinkKey key);
#define somMD_ODBaseLinkSource_Clear "::ODBaseLinkSource::Clear"
#define ODBaseLinkSource_Clear(somSelf,ev,id,key) \
    (SOM_Resolve(somSelf, ODBaseLinkSource, Clear) \
	(somSelf,ev,id,key))
#ifndef SOMGD_Clear
    #if (defined(_Clear) || defined(__Clear))
        #undef _Clear
        #undef __Clear
        #define SOMGD_Clear 1
    #else
        #define _Clear ODBaseLinkSource_Clear
    #endif /* _Clear */
#endif /* SOMGD_Clear */

/*
 * New Method: GetContentStorageUnit
 */
typedef ODStorageUnit*   (SOMLINK * somTD_ODBaseLinkSource_GetContentStorageUnit)(ODBaseLinkSource *somSelf, Environment *ev,
		ODLinkKey key);
#define somMD_ODBaseLinkSource_GetContentStorageUnit "::ODBaseLinkSource::GetContentStorageUnit"
#define ODBaseLinkSource_GetContentStorageUnit(somSelf,ev,key) \
    (SOM_Resolve(somSelf, ODBaseLinkSource, GetContentStorageUnit) \
	(somSelf,ev,key))
#ifndef SOMGD_GetContentStorageUnit
    #if (defined(_GetContentStorageUnit) || defined(__GetContentStorageUnit))
        #undef _GetContentStorageUnit
        #undef __GetContentStorageUnit
        #define SOMGD_GetContentStorageUnit 1
    #else
        #define _GetContentStorageUnit ODBaseLinkSource_GetContentStorageUnit
    #endif /* _GetContentStorageUnit */
#endif /* SOMGD_GetContentStorageUnit */

/*
 * New Method: ContentChanged
 */
typedef void   (SOMLINK * somTD_ODBaseLinkSource_ContentChanged)(ODBaseLinkSource *somSelf, Environment *ev,
		ODChangeID id,
		ODLinkKey key);
#define somMD_ODBaseLinkSource_ContentChanged "::ODBaseLinkSource::ContentChanged"
#define ODBaseLinkSource_ContentChanged(somSelf,ev,id,key) \
    (SOM_Resolve(somSelf, ODBaseLinkSource, ContentChanged) \
	(somSelf,ev,id,key))
#ifndef SOMGD_ContentChanged
    #if (defined(_ContentChanged) || defined(__ContentChanged))
        #undef _ContentChanged
        #undef __ContentChanged
        #define SOMGD_ContentChanged 1
    #else
        #define _ContentChanged ODBaseLinkSource_ContentChanged
    #endif /* _ContentChanged */
#endif /* SOMGD_ContentChanged */

/*
 * New Method: ShowSourceContent
 */
typedef void   (SOMLINK * somTD_ODBaseLinkSource_ShowSourceContent)(ODBaseLinkSource *somSelf, Environment *ev);
#define somMD_ODBaseLinkSource_ShowSourceContent "::ODBaseLinkSource::ShowSourceContent"
#define ODBaseLinkSource_ShowSourceContent(somSelf,ev) \
    (SOM_Resolve(somSelf, ODBaseLinkSource, ShowSourceContent) \
	(somSelf,ev))
#ifndef SOMGD_ShowSourceContent
    #if (defined(_ShowSourceContent) || defined(__ShowSourceContent))
        #undef _ShowSourceContent
        #undef __ShowSourceContent
        #define SOMGD_ShowSourceContent 1
    #else
        #define _ShowSourceContent ODBaseLinkSource_ShowSourceContent
    #endif /* _ShowSourceContent */
#endif /* SOMGD_ShowSourceContent */

/*
 * New Method: ShowLinkSourceInfo
 */
typedef ODBoolean   (SOMLINK * somTD_ODBaseLinkSource_ShowLinkSourceInfo)(ODBaseLinkSource *somSelf, Environment *ev,
		ODFacet* facet,
		ODChangeID change,
		ODLinkInfoResult* infoResult);
#define somMD_ODBaseLinkSource_ShowLinkSourceInfo "::ODBaseLinkSource::ShowLinkSourceInfo"
#define ODBaseLinkSource_ShowLinkSourceInfo(somSelf,ev,facet,change,infoResult) \
    (SOM_Resolve(somSelf, ODBaseLinkSource, ShowLinkSourceInfo) \
	(somSelf,ev,facet,change,infoResult))
#ifndef SOMGD_ShowLinkSourceInfo
    #if (defined(_ShowLinkSourceInfo) || defined(__ShowLinkSourceInfo))
        #undef _ShowLinkSourceInfo
        #undef __ShowLinkSourceInfo
        #define SOMGD_ShowLinkSourceInfo 1
    #else
        #define _ShowLinkSourceInfo ODBaseLinkSource_ShowLinkSourceInfo
    #endif /* _ShowLinkSourceInfo */
#endif /* SOMGD_ShowLinkSourceInfo */

/*
 * New Method: GetChangeID
 */
typedef ODChangeID   (SOMLINK * somTD_ODBaseLinkSource_GetChangeID)(ODBaseLinkSource *somSelf, Environment *ev);
#define somMD_ODBaseLinkSource_GetChangeID "::ODBaseLinkSource::GetChangeID"
#define ODBaseLinkSource_GetChangeID(somSelf,ev) \
    (SOM_Resolve(somSelf, ODBaseLinkSource, GetChangeID) \
	(somSelf,ev))
#ifndef SOMGD_GetChangeID
    #if (defined(_GetChangeID) || defined(__GetChangeID))
        #undef _GetChangeID
        #undef __GetChangeID
        #define SOMGD_GetChangeID 1
    #else
        #define _GetChangeID ODBaseLinkSource_GetChangeID
    #endif /* _GetChangeID */
#endif /* SOMGD_GetChangeID */

/*
 * New Method: GetChangeTime
 */
typedef ODTime   (SOMLINK * somTD_ODBaseLinkSource_GetChangeTime)(ODBaseLinkSource *somSelf, Environment *ev);
#define somMD_ODBaseLinkSource_GetChangeTime "::ODBaseLinkSource::GetChangeTime"
#define ODBaseLinkSource_GetChangeTime(somSelf,ev) \
    (SOM_Resolve(somSelf, ODBaseLinkSource, GetChangeTime) \
	(somSelf,ev))
#ifndef SOMGD_GetChangeTime
    #if (defined(_GetChangeTime) || defined(__GetChangeTime))
        #undef _GetChangeTime
        #undef __GetChangeTime
        #define SOMGD_GetChangeTime 1
    #else
        #define _GetChangeTime ODBaseLinkSource_GetChangeTime
    #endif /* _GetChangeTime */
#endif /* SOMGD_GetChangeTime */

/*
 * New Method: GetLink
 */
typedef ODLink*   (SOMLINK * somTD_ODBaseLinkSource_GetLink)(ODBaseLinkSource *somSelf, Environment *ev);
#define somMD_ODBaseLinkSource_GetLink "::ODBaseLinkSource::GetLink"
#define ODBaseLinkSource_GetLink(somSelf,ev) \
    (SOM_Resolve(somSelf, ODBaseLinkSource, GetLink) \
	(somSelf,ev))
#ifndef SOMGD_GetLink
    #if (defined(_GetLink) || defined(__GetLink))
        #undef _GetLink
        #undef __GetLink
        #define SOMGD_GetLink 1
    #else
        #define _GetLink ODBaseLinkSource_GetLink
    #endif /* _GetLink */
#endif /* SOMGD_GetLink */

/*
 * New Method: IsAutoUpdate
 */
typedef ODBoolean   (SOMLINK * somTD_ODBaseLinkSource_IsAutoUpdate)(ODBaseLinkSource *somSelf, Environment *ev);
#define somMD_ODBaseLinkSource_IsAutoUpdate "::ODBaseLinkSource::IsAutoUpdate"
#define ODBaseLinkSource_IsAutoUpdate(somSelf,ev) \
    (SOM_Resolve(somSelf, ODBaseLinkSource, IsAutoUpdate) \
	(somSelf,ev))
#ifndef SOMGD_IsAutoUpdate
    #if (defined(_IsAutoUpdate) || defined(__IsAutoUpdate))
        #undef _IsAutoUpdate
        #undef __IsAutoUpdate
        #define SOMGD_IsAutoUpdate 1
    #else
        #define _IsAutoUpdate ODBaseLinkSource_IsAutoUpdate
    #endif /* _IsAutoUpdate */
#endif /* SOMGD_IsAutoUpdate */

/*
 * New Method: SetAutoUpdate
 */
typedef void   (SOMLINK * somTD_ODBaseLinkSource_SetAutoUpdate)(ODBaseLinkSource *somSelf, Environment *ev,
		ODBoolean automatic);
#define somMD_ODBaseLinkSource_SetAutoUpdate "::ODBaseLinkSource::SetAutoUpdate"
#define ODBaseLinkSource_SetAutoUpdate(somSelf,ev,automatic) \
    (SOM_Resolve(somSelf, ODBaseLinkSource, SetAutoUpdate) \
	(somSelf,ev,automatic))
#ifndef SOMGD_SetAutoUpdate
    #if (defined(_SetAutoUpdate) || defined(__SetAutoUpdate))
        #undef _SetAutoUpdate
        #undef __SetAutoUpdate
        #define SOMGD_SetAutoUpdate 1
    #else
        #define _SetAutoUpdate ODBaseLinkSource_SetAutoUpdate
    #endif /* _SetAutoUpdate */
#endif /* SOMGD_SetAutoUpdate */

/*
 * New Method: SetSourcePart
 */
typedef void   (SOMLINK * somTD_ODBaseLinkSource_SetSourcePart)(ODBaseLinkSource *somSelf, Environment *ev,
		ODStorageUnit* sourcePartSU);
#define somMD_ODBaseLinkSource_SetSourcePart "::ODBaseLinkSource::SetSourcePart"
#define ODBaseLinkSource_SetSourcePart(somSelf,ev,sourcePartSU) \
    (SOM_Resolve(somSelf, ODBaseLinkSource, SetSourcePart) \
	(somSelf,ev,sourcePartSU))
#ifndef SOMGD_SetSourcePart
    #if (defined(_SetSourcePart) || defined(__SetSourcePart))
        #undef _SetSourcePart
        #undef __SetSourcePart
        #define SOMGD_SetSourcePart 1
    #else
        #define _SetSourcePart ODBaseLinkSource_SetSourcePart
    #endif /* _SetSourcePart */
#endif /* SOMGD_SetSourcePart */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define ODBaseLinkSource_InitPersistentObject ODPersistentObject_InitPersistentObject
#define ODBaseLinkSource_InitPersistentObjectFromStorage ODPersistentObject_InitPersistentObjectFromStorage
#define ODBaseLinkSource_ReleaseAll ODPersistentObject_ReleaseAll
#define ODBaseLinkSource_Externalize ODPersistentObject_Externalize
#define ODBaseLinkSource_GetStorageUnit ODPersistentObject_GetStorageUnit
#define ODBaseLinkSource_GetID ODPersistentObject_GetID
#define ODBaseLinkSource_CloneInto ODPersistentObject_CloneInto
#define ODBaseLinkSource_InitRefCntObject ODRefCntObject_InitRefCntObject
#define ODBaseLinkSource_IncrementRefCount ODRefCntObject_IncrementRefCount
#define ODBaseLinkSource_Release ODRefCntObject_Release
#define ODBaseLinkSource_GetRefCount ODRefCntObject_GetRefCount
#define ODBaseLinkSource_InitObject ODObject_InitObject
#define ODBaseLinkSource_IsInitialized ODObject_IsInitialized
#define ODBaseLinkSource_HasExtension ODObject_HasExtension
#define ODBaseLinkSource_GetExtension ODObject_GetExtension
#define ODBaseLinkSource_ReleaseExtension ODObject_ReleaseExtension
#define ODBaseLinkSource_Purge ODObject_Purge
#define ODBaseLinkSource_IsEqualTo ODObject_IsEqualTo
#define ODBaseLinkSource_SubClassResponsibility ODObject_SubClassResponsibility
#define ODBaseLinkSource_somDefaultInit SOMObject_somDefaultInit
#define ODBaseLinkSource_somDestruct SOMObject_somDestruct
#define ODBaseLinkSource_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define ODBaseLinkSource_somDefaultAssign SOMObject_somDefaultAssign
#define ODBaseLinkSource_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define ODBaseLinkSource_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define ODBaseLinkSource_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define ODBaseLinkSource_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define ODBaseLinkSource_somDefaultVAssign SOMObject_somDefaultVAssign
#define ODBaseLinkSource_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define ODBaseLinkSource_somInit SOMObject_somInit
#define ODBaseLinkSource_somFree SOMObject_somFree
#define ODBaseLinkSource_somUninit SOMObject_somUninit
#define ODBaseLinkSource_somGetClass SOMObject_somGetClass
#define ODBaseLinkSource_somGetClassName SOMObject_somGetClassName
#define ODBaseLinkSource_somGetSize SOMObject_somGetSize
#define ODBaseLinkSource_somIsA SOMObject_somIsA
#define ODBaseLinkSource_somIsInstanceOf SOMObject_somIsInstanceOf
#define ODBaseLinkSource_somRespondsTo SOMObject_somRespondsTo
#define ODBaseLinkSource_somDispatch SOMObject_somDispatch
#define ODBaseLinkSource_somClassDispatch SOMObject_somClassDispatch
#define ODBaseLinkSource_somCastObj SOMObject_somCastObj
#define ODBaseLinkSource_somResetObj SOMObject_somResetObj
#define ODBaseLinkSource_somDispatchV SOMObject_somDispatchV
#define ODBaseLinkSource_somDispatchL SOMObject_somDispatchL
#define ODBaseLinkSource_somDispatchA SOMObject_somDispatchA
#define ODBaseLinkSource_somDispatchD SOMObject_somDispatchD
#define ODBaseLinkSource_somPrintSelf SOMObject_somPrintSelf
#define ODBaseLinkSource_somDumpSelf SOMObject_somDumpSelf
#define ODBaseLinkSource_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_ODBaseLinkSource_h */
