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

/*
 * 
 *  Classes defined in this interface
 * 
 */


#ifndef SOM_ODDraft_h
#define SOM_ODDraft_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 ODDraftClassData (*resolve_ODDraftClassData())
#define ODDraftCClassData (*resolve_ODDraftCClassData())

/*
 * Define the class name as an object type
 */
#ifndef ODDraft
#define ODDraft SOMObject
#endif
#include <RefCtObj.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 ODDraft
    #define ODDraft SOMObject
#endif /* ODDraft */
#ifndef ODCanvas
    #define ODCanvas SOMObject
#endif /* ODCanvas */
#ifndef ODDocument
    #define ODDocument SOMObject
#endif /* ODDocument */
#ifndef ODFrame
    #define ODFrame SOMObject
#endif /* ODFrame */
#ifndef ODLink
    #define ODLink SOMObject
#endif /* ODLink */
#ifndef ODLinkSource
    #define ODLinkSource SOMObject
#endif /* ODLinkSource */
#ifndef ODLinkIterator
    #define ODLinkIterator SOMObject
#endif /* ODLinkIterator */
#ifndef ODLinkSourceIterator
    #define ODLinkSourceIterator SOMObject
#endif /* ODLinkSourceIterator */
#ifndef ODLinkSpec
    #define ODLinkSpec SOMObject
#endif /* ODLinkSpec */
#ifndef ODPart
    #define ODPart SOMObject
#endif /* ODPart */
#ifndef ODShape
    #define ODShape SOMObject
#endif /* ODShape */
#ifndef ODStorageUnit
    #define ODStorageUnit SOMObject
#endif /* ODStorageUnit */

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

#define ODDraft_MajorVersion 0
#define ODDraft_MinorVersion 0

/*
 * External name shortening if required
 */
#ifdef SOM_USE_SHORT_EXTERNAL_NAMES
#define ODDraftNewClass c
#define ODDraftClassData d
#define ODDraftCClassData x
#endif /* SOM_USE_SHORT_EXTERNAL_NAMES */
/*--------------Migration------------*/
#define ODDraft_classObj ODDraftClassData.classObject
#define _ODDraft ODDraft_classObj

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

/*
 * Declare the class data structure
 */
SOMEXTERN struct ODDraftClassDataStructure {
	SOMClass *classObject;
	somMToken GetDocument;
	somMToken GetID;
	somMToken GetName;
	somMToken SetName;
	somMToken GetDraftProperties;
	somMToken GetPermissions;
	somMToken CreateStorageUnit;
	somMToken GetStorageUnit;
	somMToken RemoveStorageUnit;
	somMToken BeginClone;
	somMToken EndClone;
	somMToken AbortClone;
	somMToken Clone;
	somMToken WeakClone;
	somMToken ChangedFromPrev;
	somMToken SetChangedFromPrev;
	somMToken RemoveFromDocument;
	somMToken RemoveChanges;
	somMToken Externalize;
	somMToken SaveToAPrevious;
	somMToken CreateFrame;
	somMToken GetFrame;
	somMToken RemoveFrame;
	somMToken CreatePart;
	somMToken GetPart;
	somMToken RemovePart;
	somMToken CreateLinkSpec;
	somMToken CreateLinkSource;
	somMToken GetLinkSource;
	somMToken GetLink;
	somMToken RemoveLink;
	somMToken RemoveLinkSource;
	somMToken InitDraft;
	somMToken ReleaseFrame;
	somMToken ReleasePart;
	somMToken ReleaseLink;
	somMToken ReleaseLinkSource;
	somMToken ReleaseStorageUnit;
	somMToken CreateLinkIterator;
	somMToken CreateLinkSourceIterator;
}  _ODDraftClassData;
SOMEXTERN struct ODDraftClassDataStructure * SOMLINK resolve_ODDraftClassData(void);

/*
 * Declare the C specific class data structure
 */
SOMEXTERN struct ODDraftCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
}  _ODDraftCClassData;
SOMEXTERN struct ODDraftCClassDataStructure * SOMLINK resolve_ODDraftCClassData(void);

/*
 * New and Renew macros for ODDraft
 */
#define ODDraftNew() \
   (_somNew(_ODDraft ? _ODDraft : ODDraftNewClass(ODDraft_MajorVersion, ODDraft_MinorVersion)))
#define ODDraftRenew(buf) \
   (_somRenew(_ODDraft ? _ODDraft : ODDraftNewClass(ODDraft_MajorVersion, ODDraft_MinorVersion), buf))

/*
 * Override method: somInit
 */
#define ODDraft_somInit(somSelf) \
	SOMObject_somInit(somSelf)

/*
 * Override method: somUninit
 */
#define ODDraft_somUninit(somSelf) \
	SOMObject_somUninit(somSelf)

/*
 * Override method: IncrementRefCount
 */
#define ODDraft_IncrementRefCount(somSelf,ev) \
	ODRefCntObject_IncrementRefCount(somSelf,ev)

/*
 * Override method: Release
 */
#define ODDraft_Release(somSelf,ev) \
	ODRefCntObject_Release(somSelf,ev)

/*
 * New Method: GetDocument
 */
typedef ODDocument*   (SOMLINK * somTD_ODDraft_GetDocument)(ODDraft *somSelf, Environment *ev);
#define somMD_ODDraft_GetDocument "::ODDraft::GetDocument"
#define ODDraft_GetDocument(somSelf,ev) \
    (SOM_Resolve(somSelf, ODDraft, GetDocument) \
	(somSelf,ev))
#ifndef SOMGD_GetDocument
    #if (defined(_GetDocument) || defined(__GetDocument))
        #undef _GetDocument
        #undef __GetDocument
        #define SOMGD_GetDocument 1
    #else
        #define _GetDocument ODDraft_GetDocument
    #endif /* _GetDocument */
#endif /* SOMGD_GetDocument */

/*
 * New Method: GetID
 */
typedef ODDraftID   (SOMLINK * somTD_ODDraft_GetID)(ODDraft *somSelf, Environment *ev);
#define somMD_ODDraft_GetID "::ODDraft::GetID"
#define ODDraft_GetID(somSelf,ev) \
    (SOM_Resolve(somSelf, ODDraft, GetID) \
	(somSelf,ev))
#ifndef SOMGD_GetID
    #if (defined(_GetID) || defined(__GetID))
        #undef _GetID
        #undef __GetID
        #define SOMGD_GetID 1
    #else
        #define _GetID ODDraft_GetID
    #endif /* _GetID */
#endif /* SOMGD_GetID */

/*
 * New Method: GetDraftProperties
 */
typedef ODStorageUnit*   (SOMLINK * somTD_ODDraft_GetDraftProperties)(ODDraft *somSelf, Environment *ev);
#define somMD_ODDraft_GetDraftProperties "::ODDraft::GetDraftProperties"
#define ODDraft_GetDraftProperties(somSelf,ev) \
    (SOM_Resolve(somSelf, ODDraft, GetDraftProperties) \
	(somSelf,ev))
#ifndef SOMGD_GetDraftProperties
    #if (defined(_GetDraftProperties) || defined(__GetDraftProperties))
        #undef _GetDraftProperties
        #undef __GetDraftProperties
        #define SOMGD_GetDraftProperties 1
    #else
        #define _GetDraftProperties ODDraft_GetDraftProperties
    #endif /* _GetDraftProperties */
#endif /* SOMGD_GetDraftProperties */

/*
 * New Method: GetPermissions
 */
typedef ODDraftPermissions   (SOMLINK * somTD_ODDraft_GetPermissions)(ODDraft *somSelf, Environment *ev);
#define somMD_ODDraft_GetPermissions "::ODDraft::GetPermissions"
#define ODDraft_GetPermissions(somSelf,ev) \
    (SOM_Resolve(somSelf, ODDraft, GetPermissions) \
	(somSelf,ev))
#ifndef SOMGD_GetPermissions
    #if (defined(_GetPermissions) || defined(__GetPermissions))
        #undef _GetPermissions
        #undef __GetPermissions
        #define SOMGD_GetPermissions 1
    #else
        #define _GetPermissions ODDraft_GetPermissions
    #endif /* _GetPermissions */
#endif /* SOMGD_GetPermissions */

/*
 * New Method: CreateStorageUnit
 */
typedef ODStorageUnit*   (SOMLINK * somTD_ODDraft_CreateStorageUnit)(ODDraft *somSelf, Environment *ev);
#define somMD_ODDraft_CreateStorageUnit "::ODDraft::CreateStorageUnit"
#define ODDraft_CreateStorageUnit(somSelf,ev) \
    (SOM_Resolve(somSelf, ODDraft, CreateStorageUnit) \
	(somSelf,ev))
#ifndef SOMGD_CreateStorageUnit
    #if (defined(_CreateStorageUnit) || defined(__CreateStorageUnit))
        #undef _CreateStorageUnit
        #undef __CreateStorageUnit
        #define SOMGD_CreateStorageUnit 1
    #else
        #define _CreateStorageUnit ODDraft_CreateStorageUnit
    #endif /* _CreateStorageUnit */
#endif /* SOMGD_CreateStorageUnit */

/*
 * New Method: GetStorageUnit
 */
typedef ODStorageUnit*   (SOMLINK * somTD_ODDraft_GetStorageUnit)(ODDraft *somSelf, Environment *ev,
		ODStorageUnitID id);
#define somMD_ODDraft_GetStorageUnit "::ODDraft::GetStorageUnit"
#define ODDraft_GetStorageUnit(somSelf,ev,id) \
    (SOM_Resolve(somSelf, ODDraft, GetStorageUnit) \
	(somSelf,ev,id))
#ifndef SOMGD_GetStorageUnit
    #if (defined(_GetStorageUnit) || defined(__GetStorageUnit))
        #undef _GetStorageUnit
        #undef __GetStorageUnit
        #define SOMGD_GetStorageUnit 1
    #else
        #define _GetStorageUnit ODDraft_GetStorageUnit
    #endif /* _GetStorageUnit */
#endif /* SOMGD_GetStorageUnit */

/*
 * New Method: RemoveStorageUnit
 */
typedef void   (SOMLINK * somTD_ODDraft_RemoveStorageUnit)(ODDraft *somSelf, Environment *ev,
		ODStorageUnit* storageUnit);
#define somMD_ODDraft_RemoveStorageUnit "::ODDraft::RemoveStorageUnit"
#define ODDraft_RemoveStorageUnit(somSelf,ev,storageUnit) \
    (SOM_Resolve(somSelf, ODDraft, RemoveStorageUnit) \
	(somSelf,ev,storageUnit))
#ifndef SOMGD_RemoveStorageUnit
    #if (defined(_RemoveStorageUnit) || defined(__RemoveStorageUnit))
        #undef _RemoveStorageUnit
        #undef __RemoveStorageUnit
        #define SOMGD_RemoveStorageUnit 1
    #else
        #define _RemoveStorageUnit ODDraft_RemoveStorageUnit
    #endif /* _RemoveStorageUnit */
#endif /* SOMGD_RemoveStorageUnit */

/*
 * New Method: BeginClone
 */
typedef ODDraftKey   (SOMLINK * somTD_ODDraft_BeginClone)(ODDraft *somSelf, Environment *ev,
		ODDraft* destDraft,
		ODCloneKind kind);
#define somMD_ODDraft_BeginClone "::ODDraft::BeginClone"
#define ODDraft_BeginClone(somSelf,ev,destDraft,kind) \
    (SOM_Resolve(somSelf, ODDraft, BeginClone) \
	(somSelf,ev,destDraft,kind))
#ifndef SOMGD_BeginClone
    #if (defined(_BeginClone) || defined(__BeginClone))
        #undef _BeginClone
        #undef __BeginClone
        #define SOMGD_BeginClone 1
    #else
        #define _BeginClone ODDraft_BeginClone
    #endif /* _BeginClone */
#endif /* SOMGD_BeginClone */

/*
 * New Method: EndClone
 */
typedef void   (SOMLINK * somTD_ODDraft_EndClone)(ODDraft *somSelf, Environment *ev,
		ODDraftKey key);
#define somMD_ODDraft_EndClone "::ODDraft::EndClone"
#define ODDraft_EndClone(somSelf,ev,key) \
    (SOM_Resolve(somSelf, ODDraft, EndClone) \
	(somSelf,ev,key))
#ifndef SOMGD_EndClone
    #if (defined(_EndClone) || defined(__EndClone))
        #undef _EndClone
        #undef __EndClone
        #define SOMGD_EndClone 1
    #else
        #define _EndClone ODDraft_EndClone
    #endif /* _EndClone */
#endif /* SOMGD_EndClone */

/*
 * New Method: AbortClone
 */
typedef void   (SOMLINK * somTD_ODDraft_AbortClone)(ODDraft *somSelf, Environment *ev,
		ODDraftKey key);
#define somMD_ODDraft_AbortClone "::ODDraft::AbortClone"
#define ODDraft_AbortClone(somSelf,ev,key) \
    (SOM_Resolve(somSelf, ODDraft, AbortClone) \
	(somSelf,ev,key))
#ifndef SOMGD_AbortClone
    #if (defined(_AbortClone) || defined(__AbortClone))
        #undef _AbortClone
        #undef __AbortClone
        #define SOMGD_AbortClone 1
    #else
        #define _AbortClone ODDraft_AbortClone
    #endif /* _AbortClone */
#endif /* SOMGD_AbortClone */

/*
 * New Method: Clone
 */
typedef ODID   (SOMLINK * somTD_ODDraft_Clone)(ODDraft *somSelf, Environment *ev,
		ODDraftKey key,
		ODID fromObjectID,
		ODID toObjectID,
		ODID scope);
#define somMD_ODDraft_Clone "::ODDraft::Clone"
#define ODDraft_Clone(somSelf,ev,key,fromObjectID,toObjectID,scope) \
    (SOM_Resolve(somSelf, ODDraft, Clone) \
	(somSelf,ev,key,fromObjectID,toObjectID,scope))
#ifndef SOMGD_Clone
    #if (defined(_Clone) || defined(__Clone))
        #undef _Clone
        #undef __Clone
        #define SOMGD_Clone 1
    #else
        #define _Clone ODDraft_Clone
    #endif /* _Clone */
#endif /* SOMGD_Clone */

/*
 * New Method: WeakClone
 */
typedef ODID   (SOMLINK * somTD_ODDraft_WeakClone)(ODDraft *somSelf, Environment *ev,
		ODDraftKey key,
		ODID objectID,
		ODID toObjectID,
		ODID scope);
#define somMD_ODDraft_WeakClone "::ODDraft::WeakClone"
#define ODDraft_WeakClone(somSelf,ev,key,objectID,toObjectID,scope) \
    (SOM_Resolve(somSelf, ODDraft, WeakClone) \
	(somSelf,ev,key,objectID,toObjectID,scope))
#ifndef SOMGD_WeakClone
    #if (defined(_WeakClone) || defined(__WeakClone))
        #undef _WeakClone
        #undef __WeakClone
        #define SOMGD_WeakClone 1
    #else
        #define _WeakClone ODDraft_WeakClone
    #endif /* _WeakClone */
#endif /* SOMGD_WeakClone */

/*
 * New Method: ChangedFromPrev
 */
typedef ODBoolean   (SOMLINK * somTD_ODDraft_ChangedFromPrev)(ODDraft *somSelf, Environment *ev);
#define somMD_ODDraft_ChangedFromPrev "::ODDraft::ChangedFromPrev"
#define ODDraft_ChangedFromPrev(somSelf,ev) \
    (SOM_Resolve(somSelf, ODDraft, ChangedFromPrev) \
	(somSelf,ev))
#ifndef SOMGD_ChangedFromPrev
    #if (defined(_ChangedFromPrev) || defined(__ChangedFromPrev))
        #undef _ChangedFromPrev
        #undef __ChangedFromPrev
        #define SOMGD_ChangedFromPrev 1
    #else
        #define _ChangedFromPrev ODDraft_ChangedFromPrev
    #endif /* _ChangedFromPrev */
#endif /* SOMGD_ChangedFromPrev */

/*
 * New Method: SetChangedFromPrev
 */
typedef void   (SOMLINK * somTD_ODDraft_SetChangedFromPrev)(ODDraft *somSelf, Environment *ev);
#define somMD_ODDraft_SetChangedFromPrev "::ODDraft::SetChangedFromPrev"
#define ODDraft_SetChangedFromPrev(somSelf,ev) \
    (SOM_Resolve(somSelf, ODDraft, SetChangedFromPrev) \
	(somSelf,ev))
#ifndef SOMGD_SetChangedFromPrev
    #if (defined(_SetChangedFromPrev) || defined(__SetChangedFromPrev))
        #undef _SetChangedFromPrev
        #undef __SetChangedFromPrev
        #define SOMGD_SetChangedFromPrev 1
    #else
        #define _SetChangedFromPrev ODDraft_SetChangedFromPrev
    #endif /* _SetChangedFromPrev */
#endif /* SOMGD_SetChangedFromPrev */

/*
 * New Method: RemoveFromDocument
 */
typedef void   (SOMLINK * somTD_ODDraft_RemoveFromDocument)(ODDraft *somSelf, Environment *ev);
#define somMD_ODDraft_RemoveFromDocument "::ODDraft::RemoveFromDocument"
#define ODDraft_RemoveFromDocument(somSelf,ev) \
    (SOM_Resolve(somSelf, ODDraft, RemoveFromDocument) \
	(somSelf,ev))
#ifndef SOMGD_RemoveFromDocument
    #if (defined(_RemoveFromDocument) || defined(__RemoveFromDocument))
        #undef _RemoveFromDocument
        #undef __RemoveFromDocument
        #define SOMGD_RemoveFromDocument 1
    #else
        #define _RemoveFromDocument ODDraft_RemoveFromDocument
    #endif /* _RemoveFromDocument */
#endif /* SOMGD_RemoveFromDocument */

/*
 * New Method: RemoveChanges
 */
typedef ODDraft*   (SOMLINK * somTD_ODDraft_RemoveChanges)(ODDraft *somSelf, Environment *ev);
#define somMD_ODDraft_RemoveChanges "::ODDraft::RemoveChanges"
#define ODDraft_RemoveChanges(somSelf,ev) \
    (SOM_Resolve(somSelf, ODDraft, RemoveChanges) \
	(somSelf,ev))
#ifndef SOMGD_RemoveChanges
    #if (defined(_RemoveChanges) || defined(__RemoveChanges))
        #undef _RemoveChanges
        #undef __RemoveChanges
        #define SOMGD_RemoveChanges 1
    #else
        #define _RemoveChanges ODDraft_RemoveChanges
    #endif /* _RemoveChanges */
#endif /* SOMGD_RemoveChanges */

/*
 * New Method: Externalize
 */
typedef ODDraft*   (SOMLINK * somTD_ODDraft_Externalize)(ODDraft *somSelf, Environment *ev);
#define somMD_ODDraft_Externalize "::ODDraft::Externalize"
#define ODDraft_Externalize(somSelf,ev) \
    (SOM_Resolve(somSelf, ODDraft, Externalize) \
	(somSelf,ev))
#ifndef SOMGD_Externalize
    #if (defined(_Externalize) || defined(__Externalize))
        #undef _Externalize
        #undef __Externalize
        #define SOMGD_Externalize 1
    #else
        #define _Externalize ODDraft_Externalize
    #endif /* _Externalize */
#endif /* SOMGD_Externalize */

/*
 * New Method: SaveToAPrevious
 */
typedef ODDraft*   (SOMLINK * somTD_ODDraft_SaveToAPrevious)(ODDraft *somSelf, Environment *ev,
		ODDraft* to);
#define somMD_ODDraft_SaveToAPrevious "::ODDraft::SaveToAPrevious"
#define ODDraft_SaveToAPrevious(somSelf,ev,to) \
    (SOM_Resolve(somSelf, ODDraft, SaveToAPrevious) \
	(somSelf,ev,to))
#ifndef SOMGD_SaveToAPrevious
    #if (defined(_SaveToAPrevious) || defined(__SaveToAPrevious))
        #undef _SaveToAPrevious
        #undef __SaveToAPrevious
        #define SOMGD_SaveToAPrevious 1
    #else
        #define _SaveToAPrevious ODDraft_SaveToAPrevious
    #endif /* _SaveToAPrevious */
#endif /* SOMGD_SaveToAPrevious */

/*
 * New Method: CreateFrame
 */
typedef ODFrame*   (SOMLINK * somTD_ODDraft_CreateFrame)(ODDraft *somSelf, Environment *ev,
		ODType frameType,
		ODFrame* containingFrame,
		ODShape* frameShape,
		ODCanvas* biasCanvas,
		ODPart* part,
		ODTypeToken viewType,
		ODTypeToken presentation,
		ODBoolean isRoot,
		ODBoolean isOverlaid);
#define somMD_ODDraft_CreateFrame "::ODDraft::CreateFrame"
#define ODDraft_CreateFrame(somSelf,ev,frameType,containingFrame,frameShape,biasCanvas,part,viewType,presentation,isRoot,isOverlaid) \
    (SOM_Resolve(somSelf, ODDraft, CreateFrame) \
	(somSelf,ev,frameType,containingFrame,frameShape,biasCanvas,part,viewType,presentation,isRoot,isOverlaid))
#ifndef SOMGD_CreateFrame
    #if (defined(_CreateFrame) || defined(__CreateFrame))
        #undef _CreateFrame
        #undef __CreateFrame
        #define SOMGD_CreateFrame 1
    #else
        #define _CreateFrame ODDraft_CreateFrame
    #endif /* _CreateFrame */
#endif /* SOMGD_CreateFrame */

/*
 * New Method: GetFrame
 */
typedef ODFrame*   (SOMLINK * somTD_ODDraft_GetFrame)(ODDraft *somSelf, Environment *ev,
		ODStorageUnitID id);
#define somMD_ODDraft_GetFrame "::ODDraft::GetFrame"
#define ODDraft_GetFrame(somSelf,ev,id) \
    (SOM_Resolve(somSelf, ODDraft, GetFrame) \
	(somSelf,ev,id))
#ifndef SOMGD_GetFrame
    #if (defined(_GetFrame) || defined(__GetFrame))
        #undef _GetFrame
        #undef __GetFrame
        #define SOMGD_GetFrame 1
    #else
        #define _GetFrame ODDraft_GetFrame
    #endif /* _GetFrame */
#endif /* SOMGD_GetFrame */

/*
 * New Method: RemoveFrame
 */
typedef void   (SOMLINK * somTD_ODDraft_RemoveFrame)(ODDraft *somSelf, Environment *ev,
		ODFrame* frame);
#define somMD_ODDraft_RemoveFrame "::ODDraft::RemoveFrame"
#define ODDraft_RemoveFrame(somSelf,ev,frame) \
    (SOM_Resolve(somSelf, ODDraft, RemoveFrame) \
	(somSelf,ev,frame))
#ifndef SOMGD_RemoveFrame
    #if (defined(_RemoveFrame) || defined(__RemoveFrame))
        #undef _RemoveFrame
        #undef __RemoveFrame
        #define SOMGD_RemoveFrame 1
    #else
        #define _RemoveFrame ODDraft_RemoveFrame
    #endif /* _RemoveFrame */
#endif /* SOMGD_RemoveFrame */

/*
 * New Method: CreatePart
 */
typedef ODPart*   (SOMLINK * somTD_ODDraft_CreatePart)(ODDraft *somSelf, Environment *ev,
		ODType partType,
		ODEditor optionalEditor);
#define somMD_ODDraft_CreatePart "::ODDraft::CreatePart"
#define ODDraft_CreatePart(somSelf,ev,partType,optionalEditor) \
    (SOM_Resolve(somSelf, ODDraft, CreatePart) \
	(somSelf,ev,partType,optionalEditor))
#ifndef SOMGD_CreatePart
    #if (defined(_CreatePart) || defined(__CreatePart))
        #undef _CreatePart
        #undef __CreatePart
        #define SOMGD_CreatePart 1
    #else
        #define _CreatePart ODDraft_CreatePart
    #endif /* _CreatePart */
#endif /* SOMGD_CreatePart */

/*
 * New Method: GetPart
 */
typedef ODPart*   (SOMLINK * somTD_ODDraft_GetPart)(ODDraft *somSelf, Environment *ev,
		ODStorageUnitID id);
#define somMD_ODDraft_GetPart "::ODDraft::GetPart"
#define ODDraft_GetPart(somSelf,ev,id) \
    (SOM_Resolve(somSelf, ODDraft, GetPart) \
	(somSelf,ev,id))
#ifndef SOMGD_GetPart
    #if (defined(_GetPart) || defined(__GetPart))
        #undef _GetPart
        #undef __GetPart
        #define SOMGD_GetPart 1
    #else
        #define _GetPart ODDraft_GetPart
    #endif /* _GetPart */
#endif /* SOMGD_GetPart */

/*
 * New Method: RemovePart
 */
typedef void   (SOMLINK * somTD_ODDraft_RemovePart)(ODDraft *somSelf, Environment *ev,
		ODPart* part);
#define somMD_ODDraft_RemovePart "::ODDraft::RemovePart"
#define ODDraft_RemovePart(somSelf,ev,part) \
    (SOM_Resolve(somSelf, ODDraft, RemovePart) \
	(somSelf,ev,part))
#ifndef SOMGD_RemovePart
    #if (defined(_RemovePart) || defined(__RemovePart))
        #undef _RemovePart
        #undef __RemovePart
        #define SOMGD_RemovePart 1
    #else
        #define _RemovePart ODDraft_RemovePart
    #endif /* _RemovePart */
#endif /* SOMGD_RemovePart */

/*
 * New Method: CreateLinkSpec
 */
typedef ODLinkSpec*   (SOMLINK * somTD_ODDraft_CreateLinkSpec)(ODDraft *somSelf, Environment *ev,
		ODPart* part,
		ODPtr data,
		ODULong size);
#define somMD_ODDraft_CreateLinkSpec "::ODDraft::CreateLinkSpec"
#define ODDraft_CreateLinkSpec(somSelf,ev,part,data,size) \
    (SOM_Resolve(somSelf, ODDraft, CreateLinkSpec) \
	(somSelf,ev,part,data,size))
#ifndef SOMGD_CreateLinkSpec
    #if (defined(_CreateLinkSpec) || defined(__CreateLinkSpec))
        #undef _CreateLinkSpec
        #undef __CreateLinkSpec
        #define SOMGD_CreateLinkSpec 1
    #else
        #define _CreateLinkSpec ODDraft_CreateLinkSpec
    #endif /* _CreateLinkSpec */
#endif /* SOMGD_CreateLinkSpec */

/*
 * New Method: CreateLinkSource
 */
typedef ODLinkSource*   (SOMLINK * somTD_ODDraft_CreateLinkSource)(ODDraft *somSelf, Environment *ev,
		ODPart* part);
#define somMD_ODDraft_CreateLinkSource "::ODDraft::CreateLinkSource"
#define ODDraft_CreateLinkSource(somSelf,ev,part) \
    (SOM_Resolve(somSelf, ODDraft, CreateLinkSource) \
	(somSelf,ev,part))
#ifndef SOMGD_CreateLinkSource
    #if (defined(_CreateLinkSource) || defined(__CreateLinkSource))
        #undef _CreateLinkSource
        #undef __CreateLinkSource
        #define SOMGD_CreateLinkSource 1
    #else
        #define _CreateLinkSource ODDraft_CreateLinkSource
    #endif /* _CreateLinkSource */
#endif /* SOMGD_CreateLinkSource */

/*
 * New Method: GetLinkSource
 */
typedef ODLinkSource*   (SOMLINK * somTD_ODDraft_GetLinkSource)(ODDraft *somSelf, Environment *ev,
		ODStorageUnitID id);
#define somMD_ODDraft_GetLinkSource "::ODDraft::GetLinkSource"
#define ODDraft_GetLinkSource(somSelf,ev,id) \
    (SOM_Resolve(somSelf, ODDraft, GetLinkSource) \
	(somSelf,ev,id))
#ifndef SOMGD_GetLinkSource
    #if (defined(_GetLinkSource) || defined(__GetLinkSource))
        #undef _GetLinkSource
        #undef __GetLinkSource
        #define SOMGD_GetLinkSource 1
    #else
        #define _GetLinkSource ODDraft_GetLinkSource
    #endif /* _GetLinkSource */
#endif /* SOMGD_GetLinkSource */

/*
 * New Method: GetLink
 */
typedef ODLink*   (SOMLINK * somTD_ODDraft_GetLink)(ODDraft *somSelf, Environment *ev,
		ODStorageUnitID id,
		ODLinkSpec* linkSpec);
#define somMD_ODDraft_GetLink "::ODDraft::GetLink"
#define ODDraft_GetLink(somSelf,ev,id,linkSpec) \
    (SOM_Resolve(somSelf, ODDraft, GetLink) \
	(somSelf,ev,id,linkSpec))
#ifndef SOMGD_GetLink
    #if (defined(_GetLink) || defined(__GetLink))
        #undef _GetLink
        #undef __GetLink
        #define SOMGD_GetLink 1
    #else
        #define _GetLink ODDraft_GetLink
    #endif /* _GetLink */
#endif /* SOMGD_GetLink */

/*
 * New Method: RemoveLink
 */
typedef void   (SOMLINK * somTD_ODDraft_RemoveLink)(ODDraft *somSelf, Environment *ev,
		ODLink* link);
#define somMD_ODDraft_RemoveLink "::ODDraft::RemoveLink"
#define ODDraft_RemoveLink(somSelf,ev,link) \
    (SOM_Resolve(somSelf, ODDraft, RemoveLink) \
	(somSelf,ev,link))
#ifndef SOMGD_RemoveLink
    #if (defined(_RemoveLink) || defined(__RemoveLink))
        #undef _RemoveLink
        #undef __RemoveLink
        #define SOMGD_RemoveLink 1
    #else
        #define _RemoveLink ODDraft_RemoveLink
    #endif /* _RemoveLink */
#endif /* SOMGD_RemoveLink */

/*
 * New Method: RemoveLinkSource
 */
typedef void   (SOMLINK * somTD_ODDraft_RemoveLinkSource)(ODDraft *somSelf, Environment *ev,
		ODLinkSource* link);
#define somMD_ODDraft_RemoveLinkSource "::ODDraft::RemoveLinkSource"
#define ODDraft_RemoveLinkSource(somSelf,ev,link) \
    (SOM_Resolve(somSelf, ODDraft, RemoveLinkSource) \
	(somSelf,ev,link))
#ifndef SOMGD_RemoveLinkSource
    #if (defined(_RemoveLinkSource) || defined(__RemoveLinkSource))
        #undef _RemoveLinkSource
        #undef __RemoveLinkSource
        #define SOMGD_RemoveLinkSource 1
    #else
        #define _RemoveLinkSource ODDraft_RemoveLinkSource
    #endif /* _RemoveLinkSource */
#endif /* SOMGD_RemoveLinkSource */

/*
 * New Method: InitDraft
 */
typedef void   (SOMLINK * somTD_ODDraft_InitDraft)(ODDraft *somSelf, Environment *ev,
		ODDocument* document,
		ODDraftID id,
		ODDraftPermissions perms);
#define somMD_ODDraft_InitDraft "::ODDraft::InitDraft"
#define ODDraft_InitDraft(somSelf,ev,document,id,perms) \
    (SOM_Resolve(somSelf, ODDraft, InitDraft) \
	(somSelf,ev,document,id,perms))
#ifndef SOMGD_InitDraft
    #if (defined(_InitDraft) || defined(__InitDraft))
        #undef _InitDraft
        #undef __InitDraft
        #define SOMGD_InitDraft 1
    #else
        #define _InitDraft ODDraft_InitDraft
    #endif /* _InitDraft */
#endif /* SOMGD_InitDraft */

/*
 * New Method: ReleaseFrame
 */
typedef void   (SOMLINK * somTD_ODDraft_ReleaseFrame)(ODDraft *somSelf, Environment *ev,
		ODFrame* frame);
#define somMD_ODDraft_ReleaseFrame "::ODDraft::ReleaseFrame"
#define ODDraft_ReleaseFrame(somSelf,ev,frame) \
    (SOM_Resolve(somSelf, ODDraft, ReleaseFrame) \
	(somSelf,ev,frame))
#ifndef SOMGD_ReleaseFrame
    #if (defined(_ReleaseFrame) || defined(__ReleaseFrame))
        #undef _ReleaseFrame
        #undef __ReleaseFrame
        #define SOMGD_ReleaseFrame 1
    #else
        #define _ReleaseFrame ODDraft_ReleaseFrame
    #endif /* _ReleaseFrame */
#endif /* SOMGD_ReleaseFrame */

/*
 * New Method: ReleasePart
 */
typedef void   (SOMLINK * somTD_ODDraft_ReleasePart)(ODDraft *somSelf, Environment *ev,
		ODPart* part);
#define somMD_ODDraft_ReleasePart "::ODDraft::ReleasePart"
#define ODDraft_ReleasePart(somSelf,ev,part) \
    (SOM_Resolve(somSelf, ODDraft, ReleasePart) \
	(somSelf,ev,part))
#ifndef SOMGD_ReleasePart
    #if (defined(_ReleasePart) || defined(__ReleasePart))
        #undef _ReleasePart
        #undef __ReleasePart
        #define SOMGD_ReleasePart 1
    #else
        #define _ReleasePart ODDraft_ReleasePart
    #endif /* _ReleasePart */
#endif /* SOMGD_ReleasePart */

/*
 * New Method: ReleaseLink
 */
typedef void   (SOMLINK * somTD_ODDraft_ReleaseLink)(ODDraft *somSelf, Environment *ev,
		ODLink* link);
#define somMD_ODDraft_ReleaseLink "::ODDraft::ReleaseLink"
#define ODDraft_ReleaseLink(somSelf,ev,link) \
    (SOM_Resolve(somSelf, ODDraft, ReleaseLink) \
	(somSelf,ev,link))
#ifndef SOMGD_ReleaseLink
    #if (defined(_ReleaseLink) || defined(__ReleaseLink))
        #undef _ReleaseLink
        #undef __ReleaseLink
        #define SOMGD_ReleaseLink 1
    #else
        #define _ReleaseLink ODDraft_ReleaseLink
    #endif /* _ReleaseLink */
#endif /* SOMGD_ReleaseLink */

/*
 * New Method: ReleaseLinkSource
 */
typedef void   (SOMLINK * somTD_ODDraft_ReleaseLinkSource)(ODDraft *somSelf, Environment *ev,
		ODLinkSource* link);
#define somMD_ODDraft_ReleaseLinkSource "::ODDraft::ReleaseLinkSource"
#define ODDraft_ReleaseLinkSource(somSelf,ev,link) \
    (SOM_Resolve(somSelf, ODDraft, ReleaseLinkSource) \
	(somSelf,ev,link))
#ifndef SOMGD_ReleaseLinkSource
    #if (defined(_ReleaseLinkSource) || defined(__ReleaseLinkSource))
        #undef _ReleaseLinkSource
        #undef __ReleaseLinkSource
        #define SOMGD_ReleaseLinkSource 1
    #else
        #define _ReleaseLinkSource ODDraft_ReleaseLinkSource
    #endif /* _ReleaseLinkSource */
#endif /* SOMGD_ReleaseLinkSource */

/*
 * New Method: ReleaseStorageUnit
 */
typedef ODDraft*   (SOMLINK * somTD_ODDraft_ReleaseStorageUnit)(ODDraft *somSelf, Environment *ev,
		ODStorageUnitID id);
#define somMD_ODDraft_ReleaseStorageUnit "::ODDraft::ReleaseStorageUnit"
#define ODDraft_ReleaseStorageUnit(somSelf,ev,id) \
    (SOM_Resolve(somSelf, ODDraft, ReleaseStorageUnit) \
	(somSelf,ev,id))
#ifndef SOMGD_ReleaseStorageUnit
    #if (defined(_ReleaseStorageUnit) || defined(__ReleaseStorageUnit))
        #undef _ReleaseStorageUnit
        #undef __ReleaseStorageUnit
        #define SOMGD_ReleaseStorageUnit 1
    #else
        #define _ReleaseStorageUnit ODDraft_ReleaseStorageUnit
    #endif /* _ReleaseStorageUnit */
#endif /* SOMGD_ReleaseStorageUnit */

/*
 * New Method: CreateLinkIterator
 */
typedef ODLinkIterator*   (SOMLINK * somTD_ODDraft_CreateLinkIterator)(ODDraft *somSelf, Environment *ev);
#define somMD_ODDraft_CreateLinkIterator "::ODDraft::CreateLinkIterator"
#define ODDraft_CreateLinkIterator(somSelf,ev) \
    (SOM_Resolve(somSelf, ODDraft, CreateLinkIterator) \
	(somSelf,ev))
#ifndef SOMGD_CreateLinkIterator
    #if (defined(_CreateLinkIterator) || defined(__CreateLinkIterator))
        #undef _CreateLinkIterator
        #undef __CreateLinkIterator
        #define SOMGD_CreateLinkIterator 1
    #else
        #define _CreateLinkIterator ODDraft_CreateLinkIterator
    #endif /* _CreateLinkIterator */
#endif /* SOMGD_CreateLinkIterator */

/*
 * New Method: CreateLinkSourceIterator
 */
typedef ODLinkSourceIterator*   (SOMLINK * somTD_ODDraft_CreateLinkSourceIterator)(ODDraft *somSelf, Environment *ev);
#define somMD_ODDraft_CreateLinkSourceIterator "::ODDraft::CreateLinkSourceIterator"
#define ODDraft_CreateLinkSourceIterator(somSelf,ev) \
    (SOM_Resolve(somSelf, ODDraft, CreateLinkSourceIterator) \
	(somSelf,ev))
#ifndef SOMGD_CreateLinkSourceIterator
    #if (defined(_CreateLinkSourceIterator) || defined(__CreateLinkSourceIterator))
        #undef _CreateLinkSourceIterator
        #undef __CreateLinkSourceIterator
        #define SOMGD_CreateLinkSourceIterator 1
    #else
        #define _CreateLinkSourceIterator ODDraft_CreateLinkSourceIterator
    #endif /* _CreateLinkSourceIterator */
#endif /* SOMGD_CreateLinkSourceIterator */
#ifndef SOM_DONT_USE_INHERITED_MACROS
#define ODDraft_InitRefCntObject ODRefCntObject_InitRefCntObject
#define ODDraft_GetRefCount ODRefCntObject_GetRefCount
#define ODDraft_InitObject ODObject_InitObject
#define ODDraft_IsInitialized ODObject_IsInitialized
#define ODDraft_HasExtension ODObject_HasExtension
#define ODDraft_GetExtension ODObject_GetExtension
#define ODDraft_ReleaseExtension ODObject_ReleaseExtension
#define ODDraft_Purge ODObject_Purge
#define ODDraft_IsEqualTo ODObject_IsEqualTo
#define ODDraft_SubClassResponsibility ODObject_SubClassResponsibility
#define ODDraft_somDefaultInit SOMObject_somDefaultInit
#define ODDraft_somDestruct SOMObject_somDestruct
#define ODDraft_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define ODDraft_somDefaultAssign SOMObject_somDefaultAssign
#define ODDraft_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define ODDraft_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define ODDraft_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define ODDraft_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define ODDraft_somDefaultVAssign SOMObject_somDefaultVAssign
#define ODDraft_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define ODDraft_somFree SOMObject_somFree
#define ODDraft_somGetClass SOMObject_somGetClass
#define ODDraft_somGetClassName SOMObject_somGetClassName
#define ODDraft_somGetSize SOMObject_somGetSize
#define ODDraft_somIsA SOMObject_somIsA
#define ODDraft_somIsInstanceOf SOMObject_somIsInstanceOf
#define ODDraft_somRespondsTo SOMObject_somRespondsTo
#define ODDraft_somDispatch SOMObject_somDispatch
#define ODDraft_somClassDispatch SOMObject_somClassDispatch
#define ODDraft_somCastObj SOMObject_somCastObj
#define ODDraft_somResetObj SOMObject_somResetObj
#define ODDraft_somDispatchV SOMObject_somDispatchV
#define ODDraft_somDispatchL SOMObject_somDispatchL
#define ODDraft_somDispatchA SOMObject_somDispatchA
#define ODDraft_somDispatchD SOMObject_somDispatchD
#define ODDraft_somPrintSelf SOMObject_somPrintSelf
#define ODDraft_somDumpSelf SOMObject_somDumpSelf
#define ODDraft_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_ODDraft_h */
