home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / odtlktv4.zip / ODTLKT / TOOLKIT / IDL / LINKB.IDL < prev    next >
Text File  |  1995-12-13  |  4KB  |  121 lines

  1. /********************************************************************/
  2. /*  Licensed Materials - Property of IBM                            */
  3. /*                                                                  */
  4. /*                                                                  */
  5. /* Copyright (C) International Business Machines Corp., 1994.       */
  6. /* Copyright (C) Apple Computer, Inc., 1994                         */
  7. /*                                                                  */
  8. /*  US Government Users Restricted Rights -                         */
  9. /*  Use, duplication, or disclosure restricted                      */
  10. /*  by GSA ADP Schedule Contract with IBM Corp.                     */
  11. /*                                                                  */
  12. /*                                                                  */
  13. /********************************************************************/
  14.  
  15.  
  16. #ifndef _LINKB_
  17. #define _LINKB_
  18.  
  19. #ifndef _PSTOBJ_
  20. #include "PstObj.idl"
  21. #endif
  22.  
  23. //==============================================================================
  24. // Theory of Operation
  25. //==============================================================================
  26.  
  27. /*
  28.   This class is used to represent the destination side of OpenDoc links.
  29.   ODDrafts create and own these links. The source ODPart will ask the draft
  30.   to create an ODLinkSource and an ODLink pair, and return the ODLink
  31.   object to the the destination part.  The destination part uses the ODLink
  32.   object to extract the contents of the link.
  33. */
  34.  
  35. //==============================================================================
  36. // Classes defined in this interface
  37. //==============================================================================
  38.  
  39. interface  ODBaseLink;
  40.  
  41. //==============================================================================
  42. // Classes used by this interface
  43. //==============================================================================
  44.  
  45. interface       ODLinkSource;
  46. interface       ODStorageUnit;
  47. interface       ODPart;
  48. interface       ODPartList;
  49. interface       ODDraft;
  50. interface       ODFacet;
  51.  
  52. //==============================================================================
  53. // ODLink
  54. //==============================================================================
  55.  
  56. interface ODBaseLink :  ODPersistentObject
  57. {
  58.         ODBoolean Lock(in ODULong wait, out ODLinkKey key);
  59.  
  60.         void Unlock(in ODLinkKey key);
  61.  
  62.         ODStorageUnit GetContentStorageUnit(in ODLinkKey key);
  63.  
  64.         void RegisterDependent(in ODPart clientPart, in ODUpdateID id);
  65.  
  66.         void UnregisterDependent(in ODPart clientPart);
  67.  
  68.         ODUpdateID GetUpdateID();
  69.  
  70.         ODTime GetChangeTime();
  71.  
  72.         void ShowSourceContent();
  73.  
  74. #ifdef _PLATFORM_MACINTOSH_
  75.         ODBoolean ShowLinkDestinationInfo(
  76.                                         in ODFacet facet,
  77.                                         in ODLinkInfo info,
  78.                                         in ODBoolean changesAllowed,
  79.                                         out ODLinkInfoResult infoResult);
  80. #endif
  81.  
  82.         ODLinkSource GetLinkSource();
  83.  
  84.  
  85. #ifdef __SOMIDL__
  86.         implementation
  87.         {
  88.                 functionprefix = ODBaseLink;
  89.                 override:
  90.                         somInit,
  91.                         somUninit,
  92.                         Externalize,
  93.                         ReleaseAll,
  94.                         CloneInto;
  95.  
  96.                 releaseorder:
  97.                         Lock,
  98.                         Unlock,
  99.                         GetContentStorageUnit,
  100.                         RegisterDependent,
  101.                         UnregisterDependent,
  102.                         GetUpdateID,
  103.                         GetChangeTime,
  104.                         ShowSourceContent,
  105.                         GetLinkSource,
  106.                         reserved1,
  107.                         reserved2,
  108.                         reserved3,
  109.                         reserved4,
  110.                         reserved5;
  111.  
  112.                 majorversion = 1; minorversion = 0;
  113.  
  114.         };
  115.  
  116. #endif // __SOMIDL__
  117. };
  118.  
  119. #endif // _LINKB_
  120.  
  121.