home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / bc45 / bolinc.pak / BOLEINTF.H
C/C++ Source or Header  |  1997-07-23  |  19KB  |  481 lines

  1. // $Header:   N:\admin\ocf\include\ocf\boleintf.h_v   2.0.1.0   10 Apr 1995 18:04:52   CQUINN  $
  2. //----------------------------------------------------------------------------
  3. // ObjectComponents
  4. // (C) Copyright 1994 by Borland International, All Rights Reserved
  5. //
  6. //   ObjectComponents BOcOle engine linking & embedding interfaces
  7. //----------------------------------------------------------------------------
  8. #if !defined(OCF_BOLEINTF_H)
  9. #define OCF_BOLEINTF_H
  10.  
  11. #if !defined(OCF_OCOBJECT_H)
  12. # include <ocf/ocobject.h>    // get ocf structs & enums
  13. #endif
  14. #if !defined(OSL_GEOMETRY_H)
  15. # include <osl/geometry.h>    // TPoint, TSize & TRect
  16. #endif
  17. #if defined(WIN32)
  18. # include "pshpack8.h"
  19. #endif
  20.  
  21. //
  22. // BOcOle DLL name, entry point and version resource
  23. //
  24. #if defined(BI_PLAT_WIN32)
  25. # define BOLEDLL "BOCOF.DLL"
  26. # define BOLEDLLW "BOCOFW.DLL"
  27. #else
  28. # define BOLEDLL "BOCOLE.DLL"
  29. # define BOLEDLLW BOLEDLL
  30. #endif
  31. #define BOLEBIND "CreateClassMgr"
  32. #define BOLE_FILEVER_LS 0x00010053L
  33. #define BOLE_FILEVER_MS 0x00010000L
  34.  
  35. //
  36. // GUIDs exported by the BOcOle DLL
  37. //
  38. #if defined(INIT_BGUID)
  39. # define DEFINE_BOLEGUID(name, l) \
  40.          EXTERN_C __export const GUID CDECL FAR name = \
  41.          { l, 0, 0, {0xC0,0,0,0,0,0,0,0x46} }
  42. #else
  43. # define DEFINE_BOLEGUID(name, l) EXTERN_C const GUID CDECL FAR name
  44. #endif
  45.  
  46. DEFINE_BOLEGUID(IID_IBPart,          0x02A104L);
  47. DEFINE_BOLEGUID(IID_IBSite,          0x02A105L);
  48. DEFINE_BOLEGUID(IID_IBContainer,     0x02A106L);
  49. DEFINE_BOLEGUID(IID_IBDocument,      0x02A107L);
  50. DEFINE_BOLEGUID(IID_IBService,       0x02A108L);
  51. DEFINE_BOLEGUID(IID_IBApplication,   0x02A109L);
  52. DEFINE_BOLEGUID(IID_IBClassMgr,      0x02A10AL);
  53. DEFINE_BOLEGUID(IID_IBLinkInfo,      0x02A10BL);
  54. DEFINE_BOLEGUID(IID_IBLinkable,      0x02A10CL);
  55. DEFINE_BOLEGUID(IID_IBRootLinkable,  0x02A10DL);
  56. DEFINE_BOLEGUID(IID_IBContains,      0x02A10EL);
  57. DEFINE_BOLEGUID(IID_BOleDocument,    0x02A10FL);
  58. DEFINE_BOLEGUID(IID_BOlePart,        0x02A110L);
  59. DEFINE_BOLEGUID(IID_IBDataConsumer,  0x02A111L);
  60. DEFINE_BOLEGUID(IID_IBDataProvider,  0x02A112L);
  61. DEFINE_BOLEGUID(IID_IBWindow,        0x02A113L);
  62. DEFINE_BOLEGUID(IID_IBDataNegotiator,0x02A114L);
  63. DEFINE_BOLEGUID(IID_IBDropDest,      0x02A115L);
  64. DEFINE_BOLEGUID(IID_BOleShadowData,  0x02A116L);
  65. DEFINE_BOLEGUID(IID_IBClass,         0x02A117L);
  66. DEFINE_BOLEGUID(IID_IBOverrideBrowseLinks, 0x02A118L);
  67. DEFINE_BOLEGUID(IID_BOleSite,        0x02A119L);
  68. DEFINE_BOLEGUID(IID_IBSite2,         0x02A11AL);
  69. DEFINE_BOLEGUID(IID_IBOverrideHelpButton,  0x02A11BL);
  70. DEFINE_BOLEGUID(IID_IBDataProvider2,  0x02A11CL);
  71. DEFINE_BOLEGUID(IID_IBPart2,          0x02A11DL);
  72. //DEFINE_BOLEGUID(IID_BOlePart2,        0x02A11EL);
  73.  
  74. //
  75. // BOle Class ids for instantiating BOle objects (helpers)
  76. //
  77. typedef uint32 BCID;
  78. const BCID  cidBOleService      = 1L;   //
  79. const BCID  cidBOleDocument     = 2L;   // helper for containers
  80. const BCID  cidBOlePart         = 3L;   // helper for sites
  81. const BCID  cidBOleSite         = 4L;   // helper for parts
  82. const BCID  cidBOleInProcSite   = 5L;   // helper for parts
  83. const BCID  cidBOleContainer    = 6L;   // helper for part documents
  84. const BCID  cidBOleData         = 7L;   // helper for data transfer
  85. const BCID  cidBOleFactory      = 8L;   // helper for class factory
  86. const BCID  cidBOleShadowData   = 9L;   // helper for non delayed rendering
  87. const BCID  cidBOleInProcHandler= 10L;  // helper for dll handler parts
  88.  
  89. //
  90. // Forward declarations
  91. //
  92. class _ICLASS IBClassMgr;
  93. class _ICLASS IBPart;
  94. class _ICLASS IBService;
  95. class _ICLASS IBLinkable;
  96. class _ICLASS IBRootLinkable;
  97. class _ICLASS IBContains;
  98. class _ICLASS IBDocument;
  99. class _ICLASS IBContainer;
  100. class _ICLASS IBSite;
  101. class _ICLASS IBApplication;
  102. class _ICLASS IBLinkInfo;
  103. class _ICLASS IBDataNegotiator;
  104. class _ICLASS IBDataProvider;
  105. class _ICLASS IBDataConsumer;
  106. class _ICLASS IBWindow;
  107. class _ICLASS IBDropDest;
  108. class _ICLASS IBClass;
  109. class _ICLASS IBOverrideBrowseLinks;
  110. class _ICLASS IBSite2;
  111. class _ICLASS IBOverrideHelpButton;
  112. class _ICLASS IBPart2;
  113. class _ICLASS IBDataProvider2;
  114.  
  115.  
  116. //
  117. // IClassMgr abstract base class
  118. //
  119. class _ICLASS IBClassMgr : public IUnknown {
  120.   public:
  121.    virtual HRESULT _IFUNC ComponentCreate(
  122.       IUnknown far* far* ppRet,
  123.       IUnknown far* pAggregator,
  124.       BCID     idClass
  125.      )  = 0;
  126.    virtual HRESULT _IFUNC ComponentInfoGet(
  127.       IUnknown far* far* ppInfo,
  128.       IUnknown far* pAggregator,
  129.       BCID     idClass
  130.      )  = 0;
  131. };
  132.  
  133. //
  134. // IBDataNegotiator -- Enumerats formats for drag/drop and paste
  135. //
  136. class _ICLASS IBDataNegotiator : public IUnknown {
  137.   public:
  138.     virtual uint     _IFUNC CountFormats()                      = 0;
  139.     virtual HRESULT  _IFUNC GetFormat(uint, TOcFormatInfo far*) = 0;
  140. };
  141.  
  142. //
  143. // IBDataConsumer -- Supported by containers who want to accept drag/drop
  144. //                   and paste. No new methods over the negotiator, so
  145. //                   this is just a placeholder for the consumer name.
  146. //
  147. class _ICLASS IBDataConsumer : public IBDataNegotiator {
  148. };
  149.  
  150. //
  151. // IBDataProvider -- Supported by parts and/or sites which can be
  152. //                   copied to the OLE2 clipboard
  153. //
  154. class _ICLASS IBDataProvider : public IBDataNegotiator {
  155.   public:
  156.     virtual HANDLE  _IFUNC GetFormatData(TOcFormatInfo far*)       = 0;
  157.     virtual HRESULT _IFUNC Draw(HDC, const RECTL far*,
  158.                                 const RECTL far*, TOcAspect,
  159.                                 TOcDraw bd = drNone)               = 0;
  160.     virtual HRESULT _IFUNC GetPartSize(TSize far*)                 = 0;
  161.     virtual HRESULT _IFUNC Save(IStorage far*, bool fSamAsLoad,
  162.                                 bool fRemember)                    = 0;
  163. };
  164.  
  165.  
  166. // IBDataProvider2 -- new version of IBDataProvider
  167. //
  168. class _ICLASS IBDataProvider2 : public IBDataProvider {
  169.   public:
  170.  
  171.     virtual HRESULT _IFUNC SetFormatData(TOcFormatInfo far* fmt, HANDLE data, BOOL release) = 0;
  172. };
  173.  
  174.  
  175. //
  176. // IBPart -- Supported by server objects
  177. //
  178. class _ICLASS IBPart : public IBDataProvider {
  179.   public:
  180.     virtual HRESULT _IFUNC Init(IBSite far*, TOcInitInfo far*)     = 0;
  181.     virtual HRESULT _IFUNC Close()                                 = 0;
  182.     virtual HRESULT _IFUNC CanOpenInPlace()                        = 0;
  183.     virtual HRESULT _IFUNC SetPartSize(TSize far*)                 = 0;
  184.     virtual HRESULT _IFUNC SetPartPos(TRect far*)                  = 0;
  185.     virtual HRESULT _IFUNC Activate(bool)                          = 0;
  186.     virtual HRESULT _IFUNC Show(bool)                              = 0;
  187.     virtual HRESULT _IFUNC Open(bool)                              = 0;
  188.     virtual HRESULT _IFUNC EnumVerbs(TOcVerb far*)                 = 0;
  189.     virtual HRESULT _IFUNC DoVerb(uint)                            = 0;
  190.     virtual HWND    _IFUNC OpenInPlace(HWND)                       = 0;
  191.     virtual HRESULT _IFUNC InsertMenus(HMENU, TOcMenuWidths far*)  = 0;
  192.     virtual HRESULT _IFUNC ShowTools(bool)                         = 0;
  193.     virtual void    _IFUNC FrameResized(const TRect far*, bool)    = 0;
  194.     virtual HRESULT _IFUNC DragFeedback(TPoint far*, bool)         = 0;
  195.     virtual HRESULT _IFUNC GetPalette(LOGPALETTE far* far*)        = 0;
  196.     virtual HRESULT _IFUNC SetHost(IBContainer far* pObjContainer) = 0;
  197.     virtual HRESULT _IFUNC DoQueryInterface(const IID far& iid, void far* far* pif)= 0;
  198.  
  199.     virtual LPOLESTR _IFUNC GetName(TOcPartName)                   = 0;
  200. };
  201.  
  202.  
  203. // IBPart2 -- Supported by server objects
  204. //
  205. class _ICLASS IBPart2 : public IBPart,
  206.                         public IBDataProvider2 {
  207. };
  208.  
  209.  
  210. //
  211. // IService abstract base class
  212. //
  213. class _ICLASS IBService : public IUnknown {
  214.   public:
  215.     virtual void     _IFUNC OnResize()                           = 0;
  216.     virtual void     _IFUNC OnActivate(bool)                     = 0;
  217.     virtual HRESULT  _IFUNC OnModalDialog(bool)                  = 0;
  218.     virtual HRESULT  _IFUNC OnSetFocus(bool)                     = 0;
  219.  
  220.     virtual HRESULT  _IFUNC Init(IBApplication far*)             = 0;
  221.     virtual HRESULT  _IFUNC RegisterClass(LPCOLESTR, IBClassMgr far*,
  222.                                           BCID, bool embedInSelf,
  223.                                           bool singleUse) = 0;
  224.     virtual HRESULT  _IFUNC UnregisterClass(LPCOLESTR)           = 0;
  225.     virtual HRESULT  _IFUNC TranslateAccel(MSG far*)             = 0;
  226.     virtual TOcHelp  _IFUNC HelpMode(TOcHelp)                    = 0;
  227.     virtual HRESULT  _IFUNC CanClose()                           = 0;
  228.  
  229.     virtual HRESULT  _IFUNC BrowseClipboard(TOcInitInfo far*)    = 0;
  230.     virtual HRESULT  _IFUNC Browse(TOcInitInfo far*)             = 0;
  231.  
  232.     virtual HRESULT  _IFUNC Paste(TOcInitInfo far*)              = 0;
  233.     virtual HRESULT  _IFUNC Clip(IBDataProvider far*, bool, bool,
  234.                                  bool)                           = 0;
  235.     virtual HRESULT  _IFUNC Drag(IBDataProvider far*, TOcDropAction,
  236.                                  TOcDropAction far*)             = 0;
  237.     virtual IStorage FAR* _IFUNC CreateStorageOnFile(LPCOLESTR,
  238.                                                      bool)       = 0;
  239.     virtual HRESULT _IFUNC ConvertUI(IBPart far*, bool,
  240.                                      TOcConvertInfo far*)        = 0;
  241.     virtual HRESULT _IFUNC ConvertGuts(IBPart far*, bool,
  242.                                        TOcConvertInfo far*)      = 0;
  243.     virtual TOcMenuEnable _IFUNC EnableEditMenu(TOcMenuEnable,
  244.                                                 IBDataConsumer far*)= 0;
  245. };
  246.  
  247. //
  248. // ILinkable abstract base class
  249. //
  250. class _ICLASS IBLinkable : public IUnknown {
  251.   public:
  252.     virtual HRESULT _IFUNC GetMoniker(IMoniker far* far* ppMon)    = 0;
  253.     virtual HRESULT _IFUNC OnRename(IBLinkable far* pContainer,
  254.                                     LPCOLESTR name)                = 0;
  255.                             // pass 0 name when Doc closes
  256.                             // pass boledoc for pContainer if root part(file)
  257. };
  258.  
  259. //
  260. //
  261. //
  262. class _ICLASS IBRootLinkable : public IBLinkable {
  263.   public:
  264.    virtual HRESULT _IFUNC Init(IBContains far* pC, LPCOLESTR szProgId) = 0;
  265.    virtual HRESULT _IFUNC SetMoniker(IMoniker far* pMon)               = 0;
  266. };
  267. //
  268. // on BOleLinkDoc used by Part servers and Linking Containers
  269. // on BOleSite    used by parts
  270. //
  271.  
  272. //
  273. // IContains abstract base class
  274. //
  275. class _ICLASS IBContains : public IUnknown {
  276.   public:
  277.     virtual HRESULT _IFUNC Init(LPCOLESTR)                               = 0;
  278.     virtual HRESULT _IFUNC GetPart(IBPart far* far*, LPCOLESTR)          = 0;
  279. };
  280. //
  281. // on linkable containers (all Containers with BOleLinkDoc helper)
  282. // on linkable server documents (with BOleLinkDoc helper)
  283. // on intermediate parts (in addition to IPart)
  284. //
  285.  
  286. //
  287. // IBDocument -- Supported by BOleDocument one per container child window
  288. //
  289. class _ICLASS IBDocument : public IUnknown {
  290.   public:
  291.     virtual HRESULT _IFUNC Init(IBContainer far*)                  = 0;
  292.     virtual void    _IFUNC OnResize()                              = 0;
  293.     virtual void    _IFUNC OnActivate(bool)                        = 0;
  294.     virtual void    _IFUNC OnClose()                               = 0;
  295.     virtual HRESULT _IFUNC OnSetFocus(bool)                        = 0;
  296.  
  297.     virtual HRESULT _IFUNC EnumLinks(IBLinkInfo far* far*)         = 0;
  298.     virtual HRESULT _IFUNC BrowseLinks()                           = 0;
  299.     virtual HRESULT _IFUNC UpdateLinks()                           = 0;
  300. };
  301.  
  302. //
  303. // IBWindow -- Supported on child window *and* frame window of container apps
  304. //
  305. class _ICLASS IBWindow : public IUnknown {
  306.   public:
  307.     virtual HWND     _IFUNC GetWindow()                               = 0;
  308.     virtual HRESULT  _IFUNC GetWindowRect(TRect far*)                 = 0;
  309.     virtual LPCOLESTR _IFUNC GetWindowTitle()                         = 0;
  310.     virtual void     _IFUNC AppendWindowTitle(LPCOLESTR)              = 0;
  311.     virtual HRESULT  _IFUNC SetStatusText(LPCOLESTR)                  = 0;
  312.  
  313.     virtual HRESULT  _IFUNC RequestBorderSpace(const TRect far*)      = 0;
  314.     virtual HRESULT  _IFUNC SetBorderSpace(const TRect far*)          = 0;
  315.  
  316.     virtual HRESULT  _IFUNC InsertContainerMenus(HMENU,
  317.                                                  TOcMenuWidths far*)  = 0;
  318.     virtual HRESULT  _IFUNC SetFrameMenu(HMENU)                       = 0;
  319.     virtual void     _IFUNC RestoreUI()                               = 0;
  320.     virtual HRESULT  _IFUNC Accelerator(MSG far*)                     = 0;
  321.     virtual HRESULT  _IFUNC GetAccelerators(HACCEL far*, int far*)    = 0;
  322. };
  323.  
  324. //
  325. // IBContainer -- Supported by container app's document window
  326. //
  327. class _ICLASS IBContainer : public IBWindow {
  328.   public:
  329.     virtual HRESULT  _IFUNC FindDropDest(TPoint far*, IBDropDest far* far*)=0;
  330.     virtual HRESULT  _IFUNC AllowInPlace()                          = 0;
  331.     virtual HRESULT  _IFUNC BringToFront()                          = 0;
  332. };
  333.  
  334. //
  335. // IBDropDest -- Supported by container app's document window and/or other
  336. //               areas inside the window.
  337. //
  338. class _ICLASS IBDropDest : public IBDataConsumer {
  339.   public:
  340.     virtual HRESULT  _IFUNC Drop(TOcInitInfo far*, TPoint far*,
  341.                                  const TRect far*)                    = 0;
  342.     virtual void     _IFUNC DragFeedback(TPoint far*, const TRect far*,
  343.                                          TOcMouseAction, uint, HRESULT&) = 0;
  344.     virtual HRESULT  _IFUNC Scroll(TOcScrollDir scrollDir)            = 0;
  345.     virtual HRESULT  _IFUNC GetScrollRect(TRect far*)                 = 0;
  346. };
  347.  
  348. //
  349. // IBApplication -- Supported at frame window/app object of container apps
  350. //
  351. class _ICLASS IBApplication : public IBWindow {
  352.   public:
  353.     virtual LPCOLESTR   _IFUNC GetAppName()                           = 0;
  354.     virtual TOcHelp  _IFUNC HelpMode(TOcHelp)                         = 0;
  355.     virtual HRESULT  _IFUNC CanLink()                                 = 0;
  356.     virtual HRESULT  _IFUNC CanEmbed()                                = 0;
  357.     virtual HRESULT  _IFUNC IsMDI()                                   = 0;
  358.     virtual HRESULT  _IFUNC OnModalDialog(bool)                       = 0;
  359.     virtual void     _IFUNC DialogHelpNotify(TOcDialogHelp)           = 0;
  360.     virtual void     _IFUNC ShutdownMaybe()                           = 0;
  361. };
  362.  
  363. //
  364. // IBSite -- Supported by container apps for each linked/embedded object
  365. //
  366. class _ICLASS IBSite : public IUnknown {
  367.   public:
  368.     virtual HRESULT _IFUNC SiteShow(bool)                             = 0;
  369.     virtual HRESULT _IFUNC DiscardUndo()                              = 0;
  370.     virtual HRESULT _IFUNC GetSiteRect(TRect far*, TRect far*)        = 0;
  371.     virtual HRESULT _IFUNC SetSiteRect(const TRect far*)              = 0;
  372.     virtual HRESULT _IFUNC SetSiteExtent(const TSize far*)            = 0;
  373.     virtual HRESULT _IFUNC GetZoom(TOcScaleInfo far* pScale)          = 0;
  374.     virtual void    _IFUNC Invalidate(TOcInvalidate)                  = 0;
  375.     virtual void    _IFUNC OnSetFocus(bool)                           = 0;
  376.     virtual HRESULT _IFUNC Init(IBDataProvider far*, IBPart far*,
  377.                                 LPCOLESTR, bool)                      = 0;
  378.     virtual void    _IFUNC Disconnect()                               = 0;
  379. };
  380.  
  381. //
  382. // IBLinkInfo -- Supported by BOleParts which are link objects
  383. //
  384. class _ICLASS IBLinkInfo : public IUnknown {
  385.   public:
  386.     virtual HRESULT _IFUNC SourceBreak()                              = 0;
  387.     virtual HRESULT _IFUNC SourceGet(LPOLESTR, uint count)            = 0;
  388.     virtual HRESULT _IFUNC SourceSet(LPOLESTR)                        = 0;
  389.     virtual HRESULT _IFUNC SourceOpen()                               = 0;
  390.     virtual HRESULT _IFUNC UpdateGet(TOcLinkUpdate far*)              = 0;
  391.     virtual HRESULT _IFUNC UpdateSet(TOcLinkUpdate)                   = 0;
  392.     virtual HRESULT _IFUNC UpdateNow()                                = 0;
  393. };
  394.  
  395. //
  396. // IBClass -- Supported by BOleFactory
  397. //
  398. class _ICLASS IBClass : public IClassFactory {
  399.   public:
  400.     virtual HRESULT _IFUNC Init(bool selfEmbed, LPCOLESTR pszProgId,
  401.                                 IBClassMgr* pCM, BCID rid)            = 0;
  402.     virtual HRESULT _IFUNC Register(bool singleUse)                   = 0;
  403.     virtual HRESULT _IFUNC Revoke()                                   = 0;
  404.     virtual HRESULT _IFUNC GetClassID(CLSID far* pOut)                = 0;
  405.     virtual bool _IFUNC IsA(CLSID far& pOut)                          = 0;
  406.     virtual bool _IFUNC AllowEmbedFromSelf()                          = 0;
  407.     virtual HRESULT _IFUNC GetEmbeddingHelperFactory(LPUNKNOWN *ppF)  = 0;
  408. };
  409.  
  410. //
  411. // IBOverrideBrowseLinks -- Supported by containers(who aggregate BOleDoc)
  412. //                          who want to override our BrowseLinks dialog.
  413. //
  414. class _ICLASS IBOverrideBrowseLinks : public IUnknown {
  415.   public:
  416.     virtual HRESULT    _IFUNC BrowseLinks()                        = 0;
  417. };
  418.  
  419. //----------------------------------------------------------------------------
  420. // Will eliminate this inline QI in favor of TUnknown version next rev.
  421. //
  422. inline HRESULT _IFUNC IUnknown_QueryInterface(IUnknown FAR *, REFIID iid, LPVOID FAR * pif)
  423. {
  424.   // To avoid handing out different IUnknown pointers for
  425.   // the same Windows Object don't match here.
  426.   // Only match in the main IUnknown in the outermost aggregator.
  427.   //
  428.   return ResultFromScode(E_NOINTERFACE);
  429. }
  430.  
  431. #define DEFINE_INLINE_QI(I, P) \
  432. inline HRESULT _IFUNC I##_QueryInterface(I FAR* This, REFIID iid, LPVOID FAR* pif) \
  433. {                                            \
  434.   return (iid == IID_##I) ?                  \
  435.     (*pif = This), This->AddRef(), HR_OK : \
  436.     P##_QueryInterface(This, iid, pif);      \
  437. }
  438.  
  439. #define DEFINE_INLINE_QI2(I, P1, P2) \
  440. inline HRESULT _IFUNC I##_QueryInterface(I FAR* This, REFIID iid, LPVOID FAR* pif) \
  441. {                                            \
  442.   return (iid == IID_##I) ?                  \
  443.     (*pif = This), ((P1*)This)->AddRef(), HR_OK : \
  444.     SUCCEEDED(P1##_QueryInterface(This, iid, pif))? HR_OK :\
  445.     P2##_QueryInterface(This, iid, pif);      \
  446. }
  447.  
  448. DEFINE_INLINE_QI(IBDataNegotiator, IUnknown)
  449. DEFINE_INLINE_QI(IBDataConsumer, IUnknown)
  450. DEFINE_INLINE_QI(IBDropDest, IBDataConsumer)
  451. DEFINE_INLINE_QI(IBDataProvider, IBDataNegotiator)
  452. DEFINE_INLINE_QI(IBPart, IBDataProvider)
  453.  
  454. DEFINE_INLINE_QI(IBWindow, IUnknown)
  455. DEFINE_INLINE_QI(IBContainer, IBWindow)
  456. DEFINE_INLINE_QI(IBApplication, IBWindow)
  457.  
  458. DEFINE_INLINE_QI(IBDocument, IUnknown)
  459. DEFINE_INLINE_QI(IBService, IUnknown)
  460. DEFINE_INLINE_QI(IBClassMgr, IUnknown)
  461. DEFINE_INLINE_QI(IBLinkInfo, IUnknown)
  462. DEFINE_INLINE_QI(IBSite, IUnknown)
  463. DEFINE_INLINE_QI(IBContains, IUnknown)
  464.  
  465. DEFINE_INLINE_QI(IBLinkable, IUnknown)
  466. DEFINE_INLINE_QI(IBRootLinkable, IBLinkable)
  467. DEFINE_INLINE_QI(IClassFactory, IUnknown)
  468. DEFINE_INLINE_QI(IBClass, IClassFactory)
  469.  
  470. DEFINE_INLINE_QI(IBOverrideBrowseLinks, IUnknown)
  471. DEFINE_INLINE_QI(IBDataProvider2, IBDataProvider)
  472. DEFINE_INLINE_QI2(IBPart2, IBPart, IBDataProvider2)
  473.  
  474. //----------------------------------------------------------------------------
  475.  
  476. #if defined(WIN32)
  477. # include "poppack.h"
  478. #endif
  479.  
  480. #endif  // OCF_BOLEINTF_H
  481.