8#if !defined(OCF_OCBOCOLE_H)
12#if defined(BI_HAS_PRAGMA_ONCE)
30# define BOLEDLL _T("BOCOF64.DLL")
31# define BOLEDLLW _T("BOCOFW64.DLL")
33# define BOLEDLL _T("BOCOF.DLL")
34# define BOLEDLLW _T("BOCOFW.DLL")
39# define BOLEDLL _T("BOCOF.so")
40# define BOLEDLLW _T("BOCOFW.so")
43#define BOLEBIND "CreateClassMgr"
44#define BOLE_FILEVER_LS 0x00010054L
45#define BOLE_FILEVER_MS 0x00010001L
56# if defined(_BUILDOCFDLL)
57# define DEFINE_BOLEGUID(name, l) EXTERN_C __declspec(dllexport) const GUID CDECL name
59# define DEFINE_BOLEGUID(name, l) EXTERN_C __declspec(dllimport) const GUID CDECL name
62# define DEFINE_BOLEGUID(name, l) EXTERN_C const GUID CDECL name
67#define OCF_BOLEGUIDS(X) \
68 X(IID_IBPart, 0x02A104L) \
69 X(IID_IBSite, 0x02A105L) \
70 X(IID_IBContainer, 0x02A106L) \
71 X(IID_IBDocument, 0x02A107L) \
72 X(IID_IBService, 0x02A108L) \
73 X(IID_IBApplication, 0x02A109L) \
74 X(IID_IBClassMgr, 0x02A10AL) \
75 X(IID_IBLinkInfo, 0x02A10BL) \
76 X(IID_IBLinkable, 0x02A10CL) \
77 X(IID_IBRootLinkable, 0x02A10DL) \
78 X(IID_IBContains, 0x02A10EL) \
79 X(IID_BOleDocument, 0x02A10FL) \
80 X(IID_BOlePart, 0x02A110L) \
81 X(IID_IBDataConsumer, 0x02A111L) \
82 X(IID_IBDataProvider, 0x02A112L) \
83 X(IID_IBWindow, 0x02A113L) \
84 X(IID_IBDataNegotiator,0x02A114L) \
85 X(IID_IBDropDest, 0x02A115L) \
86 X(IID_BOleShadowData, 0x02A116L) \
87 X(IID_IBClass, 0x02A117L) \
88 X(IID_IBOverrideBrowseLinks, 0x02A118L) \
89 X(IID_BOleSite, 0x02A119L) \
90 X(IID_IBSite2, 0x02A11AL) \
91 X(IID_IBOverrideHelpButton, 0x02A11BL) \
92 X(IID_IBDataProvider2, 0x02A11CL) \
93 X(IID_IBPart2, 0x02A11DL) \
94 X(IID_IBService2, 0x02A11EL) \
95 X(IID_BOleControl, 0x02A11FL) \
96 X(IID_IBControl, 0x02A120L) \
97 X(IID_IBControlSite, 0x02A121L) \
98 X(IID_BOleFont, 0x02A122L) \
99 X(IID_BOleControlSite, 0x02A123L) \
100 X(IID_IBEventsHandler, 0x02A124L) \
101 X(IID_IBEventClass, 0x02A125L) \
102 X(IID_IBSinkList, 0x02A126L) \
103 X(IID_BOlePicture, 0x02A127L) \
104 X(IID_IBPicture, 0x02A128L) \
105 X(IID_IBDataState, 0x02A129L)
107#define OCF_DECLARE_BOLEGUID(name, l) DEFINE_BOLEGUID(name, l);
109#undef OCF_DECLARE_BOLEGUID
171#define HIMETRIC_PER_INCH 2540
173#ifdef MAP_PIX_TO_LOGHIM
174#undef MAP_PIX_TO_LOGHIM
176#define MAP_PIX_TO_LOGHIM(pixel, pixelsPerInch) \
177 ((ULONG) ((((ULONG)HIMETRIC_PER_INCH) * pixel + (pixelsPerInch >> 1)) / pixelsPerInch))
179#ifdef MAP_LOGHIM_TO_PIX
180#undef MAP_LOGHIM_TO_PIX
182#define MAP_LOGHIM_TO_PIX(hiMetric, pixelsPerInch) \
183 (UINT) ((((double) hiMetric) * pixelsPerInch + (HIMETRIC_PER_INCH >> 1)) / HIMETRIC_PER_INCH)
193 IUnknown * pAggregator,
198 IUnknown * pAggregator,
289 BCID, BOOL embedInSelf,
318 BCID, BOOL embedInSelf,
453 LPCOLESTR, BOOL) = 0;
564 virtual HRESULT
_IFUNC Init(BOOL selfEmbed, LPCOLESTR pszProgId,
601 return ResultFromScode(E_NOINTERFACE);
604#define DEFINE_INLINE_QI(I, P) \
605inline HRESULT _IFUNC I##_QueryInterface(I * This, REFIID iid, LPVOID * pif) \
607 return (iid == IID_##I) ? \
608 (*pif = This), This->AddRef(), HR_OK : \
609 P##_QueryInterface(This, iid, pif); \
612#define DEFINE_INLINE_QI2(I, P1, P2) \
613inline HRESULT _IFUNC I##_QueryInterface(I * This, REFIID iid, LPVOID * pif) \
615 return (iid == IID_##I) ? \
616 (*pif = This), ((P1*)This)->AddRef(), HR_OK : \
617 SUCCEEDED(P1##_QueryInterface(This, iid, pif))? HR_OK :\
618 P2##_QueryInterface(This, iid, pif); \
IBApplication – Supported at frame window/app object of container apps.
virtual void _IFUNC ShutdownMaybe()=0
virtual TOcHelp _IFUNC HelpMode(TOcHelp)=0
virtual HRESULT _IFUNC IsMDI()=0
virtual HRESULT _IFUNC OnModalDialog(BOOL)=0
virtual LPCOLESTR _IFUNC GetAppName()=0
virtual void _IFUNC DialogHelpNotify(TOcDialogHelp)=0
virtual HRESULT _IFUNC CanEmbed()=0
virtual HRESULT _IFUNC CanLink()=0
IBClass – Supported by BOleFactory.
virtual BOOL _IFUNC AllowEmbedFromSelf()=0
virtual HRESULT _IFUNC GetClassID(CLSID *pOut)=0
virtual BOOL _IFUNC IsA(CLSID &pOut)=0
virtual HRESULT _IFUNC Init(BOOL selfEmbed, LPCOLESTR pszProgId, IBClassMgr *pCM, BCID rid)=0
virtual HRESULT _IFUNC GetEmbeddingHelperFactory(LPUNKNOWN *ppF)=0
virtual HRESULT _IFUNC Revoke()=0
virtual HRESULT _IFUNC Register(BOOL singleUse)=0
IClassMgr abstract base class.
virtual HRESULT _IFUNC ComponentInfoGet(IUnknown **ppInfo, IUnknown *pAggregator, BCID classId)=0
virtual HRESULT _IFUNC ComponentCreate(IUnknown **ppRet, IUnknown *pAggregator, BCID classId)=0
IBContainer – Supported by container app's document window.
virtual HRESULT _IFUNC FindDropDest(owl::TPoint *, IBDropDest **)=0
virtual HRESULT _IFUNC AllowInPlace()=0
virtual HRESULT _IFUNC BringToFront()=0
IContains abstract base class.
virtual HRESULT _IFUNC Init(LPCOLESTR)=0
virtual HRESULT _IFUNC GetPart(IBPart **, LPCOLESTR)=0
virtual HRESULT _IFUNC GetSizeMax(ULARGE_INTEGER *)=0
virtual HRESULT _IFUNC GetEventTypeInfo(ITypeInfo **ppTypeInfo)=0
virtual HRESULT _IFUNC GetCtrlDispatch(IDispatch **ppDispatch)=0
virtual HRESULT _IFUNC AboutBox()=0
virtual HRESULT _IFUNC Save(LPSTREAM)=0
virtual HRESULT _IFUNC AmbientChanged(DISPID dispid)=0
virtual HRESULT _IFUNC Refresh()=0
virtual HRESULT _IFUNC OnMnemonic(LPMSG)=0
virtual HRESULT _IFUNC FreezeEvents(BOOL)=0
virtual HRESULT _IFUNC SetAmbientDispatch(IDispatch *)=0
virtual HRESULT _IFUNC DoClick()=0
virtual HRESULT _IFUNC GetClassInfo(LPTYPEINFO *)=0
virtual HRESULT _IFUNC SetEventDispatch(IDispatch *)=0
virtual HRESULT _IFUNC GetEventIID(IID *iidEvent)=0
virtual HRESULT _IFUNC GetControlInfo(LPCONTROLINFO)=0
virtual HRESULT _IFUNC TransformCoords(owl::TPointL *lpptlHimetric, owl::TPointF *lpptfContainer, DWORD flags)=0
virtual HRESULT _IFUNC Init(UINT, IBControl *, UINT)=0
virtual HRESULT _IFUNC OnControlFocus(BOOL fGotFocus)=0
virtual HRESULT _IFUNC OnPropertyChanged(DISPID dispid)=0
virtual HRESULT _IFUNC OnPropertyRequestEdit(DISPID dispid)=0
IBDataConsumer – Supported by containers who want to accept drag/drop and paste.
IBDataNegotiator – Enumerats formats for drag/drop and paste.
virtual owl::uint _IFUNC CountFormats()=0
virtual HRESULT _IFUNC GetFormat(owl::uint, TOcFormatInfo *)=0
IBDataProvider2 – new version of IBDataProvider.
virtual HRESULT _IFUNC SetFormatData(TOcFormatInfo *fmt, HANDLE data, BOOL release)=0
IBDataProvider – Supported by parts and/or sites which can be copied to the OLE2 clipboard.
virtual HRESULT _IFUNC Save(IStorage *, BOOL fSamAsLoad, BOOL fRemember)=0
virtual HRESULT _IFUNC Draw(HDC, const RECTL *, const RECTL *, TOcAspect, TOcDraw bd=drNone)=0
virtual HRESULT _IFUNC GetPartSize(owl::TSize *)=0
virtual HANDLE _IFUNC GetFormatData(TOcFormatInfo *)=0
virtual HRESULT _IFUNC IsDirty()=0
virtual HRESULT _IFUNC GetClassID(LPCLSID)=0
virtual void _IFUNC SetDirty(BOOL)=0
IBDocument – Supported by BOleDocument one per container child window.
virtual HRESULT _IFUNC Init(IBContainer *)=0
virtual HRESULT _IFUNC EnumLinks(IBLinkInfo **)=0
virtual HRESULT _IFUNC OnSetFocus(BOOL)=0
virtual void _IFUNC OnClose()=0
virtual HRESULT _IFUNC BrowseLinks()=0
virtual void _IFUNC OnResize()=0
virtual HRESULT _IFUNC UpdateLinks()=0
virtual void _IFUNC OnActivate(BOOL)=0
IBDropDest – Supported by container app's document window and/or other areas inside the window.
virtual HRESULT _IFUNC Drop(TOcInitInfo *, owl::TPoint *, const owl::TRect *)=0
virtual HRESULT _IFUNC GetScrollRect(owl::TRect *)=0
virtual HRESULT _IFUNC Scroll(TOcScrollDir scrollDir)=0
virtual void _IFUNC DragFeedback(owl::TPoint *, const owl::TRect *, TOcMouseAction, owl::uint, HRESULT &)=0
virtual HRESULT _IFUNC FreezeEvents(BOOL)=0
virtual HRESULT _IFUNC GetSinkList(IBSinkList **)=0
virtual HRESULT _IFUNC RegisterConnectionPoint(LPCONNECTIONPOINT)=0
virtual HRESULT _IFUNC RegisterEventsSet(REFIID, UINT)=0
virtual HRESULT _IFUNC GetSinkListForIID(REFIID, IBSinkList **)=0
IBLinkInfo – Supported by BOleParts which are link objects.
virtual HRESULT _IFUNC SourceOpen()=0
virtual HRESULT _IFUNC SourceGet(LPOLESTR, owl::uint count)=0
virtual HRESULT _IFUNC UpdateNow()=0
virtual HRESULT _IFUNC UpdateGet(TOcLinkUpdate *)=0
virtual HRESULT _IFUNC SourceBreak()=0
virtual HRESULT _IFUNC SourceSet(LPOLESTR)=0
virtual HRESULT _IFUNC UpdateSet(TOcLinkUpdate)=0
ILinkable abstract base class.
virtual HRESULT _IFUNC OnRename(IBLinkable *pContainer, LPCOLESTR name)=0
virtual HRESULT _IFUNC GetMoniker(IMoniker **ppMon)=0
IBOverrideBrowseLinks – Supported by containers(who aggregate BOleDoc) who want to override our Brows...
virtual HRESULT _IFUNC BrowseLinks()=0
IBPart2 – Supported by server objects.
IBPart – Supported by server objects.
virtual HRESULT _IFUNC ShowTools(BOOL)=0
virtual HRESULT _IFUNC Open(BOOL)=0
virtual HRESULT _IFUNC InsertMenus(HMENU, TOcMenuWidths *)=0
virtual LPOLESTR _IFUNC GetName(TOcPartName)=0
virtual HRESULT _IFUNC Activate(BOOL)=0
virtual HRESULT _IFUNC Close()=0
virtual void _IFUNC FrameResized(const owl::TRect *, BOOL)=0
virtual HRESULT _IFUNC DragFeedback(owl::TPoint *, BOOL)=0
virtual HRESULT _IFUNC SetHost(IBContainer *pObjContainer)=0
virtual HWND _IFUNC OpenInPlace(HWND)=0
virtual HRESULT _IFUNC CanOpenInPlace()=0
virtual HRESULT _IFUNC SetPartPos(owl::TRect *)=0
virtual HRESULT _IFUNC Show(BOOL)=0
virtual HRESULT _IFUNC GetPalette(LOGPALETTE **)=0
virtual HRESULT _IFUNC SetPartSize(owl::TSize *)=0
virtual HRESULT _IFUNC DoVerb(owl::uint)=0
virtual HRESULT _IFUNC Init(IBSite *, TOcInitInfo *)=0
virtual HRESULT _IFUNC EnumVerbs(TOcVerb *)=0
virtual HRESULT _IFUNC DoQueryInterface(const IID &iid, void **pif)=0
virtual HRESULT _IFUNC Init(IBContains *pC, LPCOLESTR szProgId)=0
virtual HRESULT _IFUNC SetMoniker(IMoniker *pMon)=0
virtual HRESULT _IFUNC UnregisterControlClass(LPCOLESTR)=0
virtual HRESULT _IFUNC RegisterControlClass(LPCOLESTR, IBClassMgr *, BCID, BOOL embedInSelf, BOOL singleUse)=0
virtual HRESULT _IFUNC BrowseControls(TOcInitInfo *)=0
IService abstract base class.
virtual HRESULT _IFUNC OnModalDialog(BOOL)=0
virtual HRESULT _IFUNC BrowseClipboard(TOcInitInfo *)=0
virtual TOcHelp _IFUNC HelpMode(TOcHelp)=0
virtual void _IFUNC OnResize()=0
virtual HRESULT _IFUNC Clip(IBDataProvider *, BOOL, BOOL, BOOL)=0
virtual HRESULT _IFUNC ConvertUI(IBPart *, BOOL, TOcConvertInfo *)=0
virtual TOcMenuEnable _IFUNC EnableEditMenu(TOcMenuEnable, IBDataConsumer *)=0
virtual HRESULT _IFUNC UnregisterClass(LPCOLESTR)=0
virtual HRESULT _IFUNC ConvertGuts(IBPart *, BOOL, TOcConvertInfo *)=0
virtual HRESULT _IFUNC Paste(TOcInitInfo *)=0
virtual HRESULT _IFUNC Init(IBApplication *)=0
virtual HRESULT _IFUNC TranslateAccel(MSG *)=0
virtual HRESULT _IFUNC CanClose()=0
virtual void _IFUNC OnActivate(BOOL)=0
virtual IStorage *_IFUNC CreateStorageOnFile(LPCOLESTR, BOOL)=0
virtual HRESULT _IFUNC RegisterClass(LPCOLESTR, IBClassMgr *, BCID, BOOL embedInSelf, BOOL singleUse)=0
virtual HRESULT _IFUNC Drag(IBDataProvider *, TOcDropAction, TOcDropAction *)=0
virtual HRESULT _IFUNC OnSetFocus(BOOL)=0
virtual HRESULT _IFUNC Browse(TOcInitInfo *)=0
virtual HRESULT _IFUNC NextSink(LPVOID *)=0
virtual HRESULT _IFUNC GetSinkAt(int, LPVOID *)=0
virtual HRESULT _IFUNC Reset()=0
IBSite2 – Add flexibility to have parent of site not be container.
virtual HRESULT _IFUNC GetParentWindow(HWND *)=0
IBSite – Supported by container apps for each linked/embedded object.
virtual HRESULT _IFUNC GetSiteRect(owl::TRect *, owl::TRect *)=0
virtual HRESULT _IFUNC DiscardUndo()=0
virtual void _IFUNC OnSetFocus(BOOL)=0
virtual void _IFUNC Invalidate(TOcInvalidate)=0
virtual HRESULT _IFUNC GetZoom(TOcScaleInfo *pScale)=0
virtual HRESULT _IFUNC SiteShow(BOOL)=0
virtual HRESULT _IFUNC Init(IBDataProvider *, IBPart *, LPCOLESTR, BOOL)=0
virtual HRESULT _IFUNC SetSiteExtent(const owl::TSize *)=0
virtual HRESULT _IFUNC SetSiteRect(const owl::TRect *)=0
virtual void _IFUNC Disconnect()=0
IBWindow – Supported on child window and frame window of container apps.
virtual HRESULT _IFUNC SetBorderSpace(const owl::TRect *)=0
virtual LPCOLESTR _IFUNC GetWindowTitle()=0
virtual HRESULT _IFUNC InsertContainerMenus(HMENU, TOcMenuWidths *)=0
virtual HRESULT _IFUNC Accelerator(MSG *)=0
virtual void _IFUNC RestoreUI()=0
virtual HRESULT _IFUNC RequestBorderSpace(const owl::TRect *)=0
virtual HWND _IFUNC GetWindow()=0
virtual void _IFUNC AppendWindowTitle(LPCOLESTR)=0
virtual HRESULT _IFUNC SetStatusText(LPCOLESTR)=0
virtual HRESULT _IFUNC GetWindowRect(owl::TRect *)=0
virtual HRESULT _IFUNC SetFrameMenu(HMENU)=0
virtual HRESULT _IFUNC GetAccelerators(HACCEL *, int *)=0
TPointF is similar to TPoint, but uses floating variables rather than integers.
TPoint is a support class, derived from tagPOINT.
TPointL is similar to TPoint, but uses long rather than int variables.
TRect is a mathematical class derived from tagRect.
The tagSIZE struct is defined as.
Classes for window system geometry.
Object Component Framework (COM encapsulation).
class _ICLASS IBEventClass
const BCID cidBOleControlFactory
const BCID cidBOleInProcHandler
const BCID cidBOleInProcSite
class _ICLASS IBEventsHandler
class _ICLASS IBOverrideBrowseLinks
const BCID cidBOleContainer
const BCID cidBOleControlSite
const BCID cidBOleFactory
class _ICLASS IBContainer
const BCID cidBOlePicture
class _ICLASS IBDataState
class _ICLASS IBDataConsumer
class _ICLASS IBControlSite
const BCID cidBOleControl
class _ICLASS IBDataProvider2
const BCID cidBOleShadowData
HRESULT _IFUNC IUnknown_QueryInterface(IUnknown *, REFIID iid, LPVOID *pif)
class _ICLASS IBOverrideHelpButton
class _ICLASS IBDataProvider
class _ICLASS IBApplication
const BCID cidBOleService
class _ICLASS IBRootLinkable
class _ICLASS IBDataNegotiator
const BCID cidBOleDocument
#define OCF_DECLARE_BOLEGUID(name, l)
#define DEFINE_INLINE_QI2(I, P1, P2)
#define DEFINE_INLINE_QI(I, P)
interface _ICLASS ITypeInfo
interface _ICLASS IStorage
Various general OC enums and structs.