OWLNext    7.0
Borland's Object Windows Library for the modern age
Loading...
Searching...
No Matches
olewindo.h
Go to the documentation of this file.
1//----------------------------------------------------------------------------
2// ObjectComponents
3// Copyright (c) 1994, 1996 by Borland International, All Rights Reserved
4/// \file
5/// TOleWindow - Class encapsulating a window which can be an OLE container
6/// or server window.
7//----------------------------------------------------------------------------
8
9#if !defined(OCF_OLEWINDO_H)
10#define OCF_OLEWINDO_H
11
12#include <owl/private/defs.h>
13#if defined(BI_HAS_PRAGMA_ONCE)
14# pragma once
15#endif
16
17#include <owl/window.h>
18#include <owl/dc.h>
19#include <owl/uihelper.h>
20
21#include <ocf/ocfevent.h>
22#include <ocf/ocremvie.h>
23#include <ocf/ocpart.h>
24#include <ocf/oclink.h>
25
26namespace owl {class _OWLCLASS TPopupMenu;};
27
28namespace ocf {
29
30// Generic definitions/compiler options (eg. alignment) preceeding the
31// definition of classes
32#include <owl/preclass.h>
33
34
36
37//
38/// \class TOleWindow
39// ~~~~~ ~~~~~~~~~~
40/// The generic OLE2 window. Use as a client of a frame window.
41//
42/// Derived from TWindow, TOleWindow provides support for embedding objects in a
43/// compound document and serves as the client of a frame window. A compound
44/// document, such as the one TOleWindow supports, can contain many different types
45/// of embedded objects, from spreadsheets to bitmaps. In addition to providing
46/// support for a variety of basic window operations, TOleWindow also implements
47/// several OLE-related operations, among them
48/// - Responding to drag and drop events
49/// - In-place editing (the process whereby an embedded object can be
50/// edited without having to switch to its associated server application)
51/// - Activating an embedded object's server application
52/// - Creating views for the container application
53/// - Transmitting a document's scaling information between a
54/// container's and a server's view windows
55///
56/// TOleWindow has the ability to determine whether it's acting as a server or a
57/// container. If it is a container, TOleWindow has a pointer to a TOcView or if it
58/// is a server, TOleWindow establishes a pointer to a TOcRemView. From the
59/// server's point of view, every remote view has a corresponding TOleWindow.
60///
61/// Through its many event-handling member functions, TOleWindow communicates with
62/// ObjectComponents to implement container and server support for embedded objects,
63/// update views, and respond to a variety of menu commands associated with the
64/// typical command identifiers (for example, CM_FILEMENU). It also supports
65/// OLE-specific verbs such as those activated from the Edit menu (for example, Edit
66/// and Open). These commands and verbs can originate from various sources such as a
67/// menu selection, a radio button, or even an internal program message.
68///
69/// Conversely, ObjectComponents talks to ObjectWindows by means of the various
70/// EV_OC_Xxxx messages. Some of these messages, such as EV_OC_VIEWPARTINVALID,
71/// implement container support while others, such as EV_OC_VIEWCLOSE, implement
72/// server support.
73///
74/// For any user-defined classes derived from TOleWindow, you need to choose which
75/// functions are appropriate. If you want to provide additional server support, you
76/// need to define only those functions that implement server messages; if you want
77/// to provide container support, you need to define only those functions that
78/// provide additional container support.
79///
80/// For example, the data embedded in the container application (a compound document
81/// having one or more embedded objects) and the data embedded in the server
82/// application (a single OLE object with or without other embedded objects) can be
83/// written to storage and loaded from storage. If you're using TOleWindow without
84/// TOleView, you have to manipulate the storage by talking directly to the
85/// ObjectComponents class, TOcDocument.
86///
87/// In addition to communicating with ObjectComponents classes, TOleWindow supports
88/// many transactions as a result of its interaction with other ObjectWindows
89/// classes. By virtue of its derivation from TWindow, naturally it inherits much of
90/// TWindow's functionality.
91class _OCFCLASS TOleWindow : virtual public owl::TWindow {
92 public:
93 TOleWindow(owl::TWindow* parent = 0, owl::TModule* module = 0);
95
96 // Accessors
97 //
98 TOcDocument* GetOcDoc();
99 TOcView* GetOcView();
100 TOcRemView* GetOcRemView();
101 TOcApp* GetOcApp();
102 bool HasActivePart();
103 bool SelectEmbedded();
104
105 /// \name Query about current state
106 /// @{
107 bool IsOpenEditing() const;
108 bool IsRemote() const;
109 /// @}
110
111 /// \name Virtuals that derived class can override
112 /// @{
113 virtual bool OleShutDown();
114 virtual void SetupDC(owl::TDC& dc, bool scale = true);
115 virtual TOcView* CreateOcView(owl::TRegLink* link, bool isRemote, IUnknown* outer);
116 /// @}
117
118 /// \name Helper routines to create new objects or controls [Container specific]
119 /// @{
120 TOcPart* InsertObject(TOcInitInfo& initInfo, owl::TRect* pos = 0);
121 TOcPart* InsertObject(CLSID& objIID, owl::TRect* pos = 0);
122 TOcPart* InsertObject(owl::TString& objProgId, owl::TRect* pos = 0);
123
124 TOcControl* InsertControl(TOcInitInfo& initInfo, owl::TRect* pos = 0, int id = 0);
125 TOcControl* InsertControl(CLSID& ocxIID, owl::TRect* pos = 0, int id = 0);
126 TOcControl* InsertControl(const owl::TString& ocxProgID, owl::TRect* pos = 0, int id = 0);
127 /// @}
128
129 /// \name Helper routines to retrieve information about parts (embeddings/ocxes)
130 /// @{
131 TOcControl* GetOcControlOfOCX(CLSID ocxIID, owl::uint id = 0);
132 /// @}
133
134 protected:
135 /// \name Overridables
136 /// @{
137 virtual void GetInsertPosition(owl::TRect& rect);
138 virtual void InvalidatePart(TOcInvalidate invalid); // server only
139 virtual bool Deactivate();
140 virtual bool Select(owl::uint modKeys, owl::TPoint& point);
141 virtual bool PaintSelection(owl::TDC& dc, bool erase, owl::TRect& rect,
142 void* userData = 0);
143 virtual bool PaintParts(owl::TDC& dc, bool erase, owl::TRect& rect, bool metafile);
144 virtual bool PaintLink(owl::TDC& dc, bool erase, owl::TRect& rect,
145 owl::TString& moniker);
146 virtual void GetLogPerUnit(owl::TSize& logPerUnit);
147 virtual void SetScale(owl::uint16 percent);
148 virtual void SetSelection(TOcPart* part);
149 virtual bool ShowCursor(HWND wnd, owl::uint hitTest, owl::uint mouseMsg);
150 virtual bool StartDrag(owl::uint modKeys, owl::TPoint& point);
151 virtual LPCTSTR GetFileName();
152 /// @}
153
154 protected:
155 // Override virtual functions defined by owl::TWindow
156 //
157 void SetupWindow() override;
158 void CleanupWindow() override;
159 auto CanClose() -> bool override;
160
161 bool InClient(owl::TDC& dc, owl::TPoint& point);
162
163 auto EvCommand(owl::uint id, HWND hWndCtl, owl::uint notifyCode) -> owl::TResult override;
164 void EvCommandEnable(owl::TCommandEnabler&) override;
165 void EvPaint();
166 void EvSize(owl::uint sizeType, const owl::TSize& size);
167 void EvMDIActivate(HWND hWndActivated, HWND hWndDeactivated);
168 owl::uint EvMouseActivate(HWND topParent, owl::uint hitCode, owl::uint msg);
169 void EvSetFocus(HWND hWndLostFocus);
170
171 virtual bool EvOcViewPartInvalid(TOcPartChangeInfo& changeInfo);
172
173 void CeFileClose(owl::TCommandEnabler& ce);
174 void CmEditDelete();
175 void CmEditCut();
176 void CmEditCopy();
177 void CmEditPaste();
178 void CmEditPasteSpecial();
179 void CmEditPasteLink();
180 void CmEditLinks();
181 void CmEditConvert();
182 void CmEditInsertObject();
183 void CmEditInsertControl();
184 void CmEditShowObjects();
185
186 void CeEditDelete(owl::TCommandEnabler& ce);
187 void CeEditCut(owl::TCommandEnabler& ce);
188 void CeEditCopy(owl::TCommandEnabler& ce);
189 void CeEditPaste(owl::TCommandEnabler& ce);
190 void CeEditPasteSpecial(owl::TCommandEnabler& ce);
191 void CeEditPasteLink(owl::TCommandEnabler& ce);
192 void CeEditLinks(owl::TCommandEnabler& ce);
193 void CeEditObject(owl::TCommandEnabler& ce);
194 void CeEditConvert(owl::TCommandEnabler& ce);
195 void CeEditVerbs(owl::TCommandEnabler& ce);
196 void CeEditInsertObject(owl::TCommandEnabler& ce);
197 void CeEditInsertControl(owl::TCommandEnabler& ce);
198 void CeEditShowObjects(owl::TCommandEnabler& ce);
199
200 void EvMouseMove(owl::uint modKeys, const owl::TPoint& point);
201 void EvRButtonDown(owl::uint modKeys, const owl::TPoint& point);
202 void EvLButtonUp(owl::uint modKeys, const owl::TPoint& point);
203 void EvLButtonDown(owl::uint modKeys, const owl::TPoint& point);
204 void EvLButtonDblClk(owl::uint modKeys, const owl::TPoint& point);
205 bool EvSetCursor(HWND hWndCursor, owl::uint hitTest, owl::uint mouseMsg);
206 void EvDropFiles(owl::TDropInfo dropInfo);
207 void EvHScroll(owl::uint scrollCode, owl::uint thumbPos, HWND hWndCtl);
208 void EvVScroll(owl::uint scrollCode, owl::uint thumbPos, HWND hWndCtl);
209 void EvMenuSelect(owl::uint menuItemId, owl::uint flags, HMENU hMenu);
210
211 owl::TResult EvOcEvent(owl::TParam1 param1, owl::TParam2 param2);
212/// owl::uint32 EvOcViewDiscardUndo(void * undo);
213
214 /// \name Container specific messages
215 /// @{
216 LPCTSTR EvOcViewTitle();
217 void EvOcViewSetTitle(LPCTSTR title);
218
219 bool EvOcViewBorderSpaceReq(owl::TRect * rect);
220 bool EvOcViewBorderSpaceSet(owl::TRect * rect);
221 bool EvOcViewDrop(TOcDragDrop & ddInfo);
222 bool EvOcViewDrag(TOcDragDrop & ddInfo);
223 bool EvOcViewScroll(TOcScrollDir scrollDir);
224 bool EvOcViewGetScale(TOcScaleFactor& scaleFactor);
225 bool EvOcViewGetSiteRect(owl::TRect * rect);
226 bool EvOcViewSetSiteRect(owl::TRect * rect);
227 bool EvOcViewPartActivate(TOcPart& ocPart);
228 bool EvOcViewPasteObject(TOcInitInfo& init);
229 /// @}
230
231 /// \name Server specific messages
232 /// @{
233 bool EvOcPartInvalid(TOcPart & /*part*/);
234 bool EvOcViewSavePart(TOcSaveLoad & ocSave);
235 bool EvOcViewLoadPart(TOcSaveLoad & ocLoad);
236 bool EvOcViewPaint(TOcViewPaint & vp);
237 bool EvOcViewInsMenus(TOcMenuDescr & sharedMenu);
238 bool EvOcViewShowTools(TOcToolBarInfo & tbi);
239 bool EvOcViewGetPalette(LOGPALETTE * * palette);
240 bool EvOcViewClipData(TOcFormatData & format);
241 bool EvOcViewSetData(TOcFormatData & format);
242 bool EvOcViewClose();
243 bool EvOcViewPartSize(TOcPartSize & size);
244 bool EvOcViewOpenDoc(LPCTSTR path);
245 bool EvOcViewAttachWindow(bool attach);
246 bool EvOcViewSetScale(TOcScaleFactor& scaleFactor);
247 bool EvOcViewGetItemName(TOcItemName& item);
248 bool EvOcViewSetLink(TOcLinkView& view);
249 bool EvOcViewBreakLink(TOcLinkView& view);
250 bool EvOcViewDoVerb(owl::uint verb);
251
252 virtual bool EvOcViewTransformCoords(owl::uint verb);
253 /// @}
254
255 /// \name Ambient property specific messages
256 /// @{
257 virtual bool EvOcAmbientGetBackColor(long* rgb);
258 virtual bool EvOcAmbientGetForeColor(long* rgb);
259 virtual bool EvOcAmbientGetLocaleID(long* locale);
260 virtual bool EvOcAmbientGetTextAlign(short* align);
261 virtual bool EvOcAmbientGetMessageReflect(bool* msgReflect);
262 virtual bool EvOcAmbientGetUserMode(bool* mode);
263 virtual bool EvOcAmbientGetUIDead(bool* dead);
264 virtual bool EvOcAmbientGetShowGrabHandles(bool* show);
265 virtual bool EvOcAmbientGetShowHatching(bool* show);
266 virtual bool EvOcAmbientGetDisplayAsDefault(bool* disp);
267 virtual bool EvOcAmbientGetSupportsMnemonics(bool* support);
268 virtual bool EvOcAmbientGetDisplayName(owl::TString** name);
269 virtual bool EvOcAmbientGetScaleUnits(owl::TString** units);
270 virtual bool EvOcAmbientGetFont(IDispatch** font);
271
272 virtual bool EvOcAmbientSetBackColor(long rgb);
273 virtual bool EvOcAmbientSetForeColor(long rgb);
274 virtual bool EvOcAmbientSetLocaleID(long locale);
275 virtual bool EvOcAmbientSetTextAlign(short align);
276 virtual bool EvOcAmbientSetMessageReflect(bool msgReflect);
277 virtual bool EvOcAmbientSetUserMode(bool mode);
278 virtual bool EvOcAmbientSetUIDead(bool dead);
279 virtual bool EvOcAmbientSetShowGrabHandles(bool show);
280 virtual bool EvOcAmbientSetShowHatching(bool show);
281 virtual bool EvOcAmbientSetDisplayAsDefault(bool disp);
282 virtual bool EvOcAmbientSetSupportsMnemonics(bool support);
283 virtual bool EvOcAmbientSetDisplayName(owl::TString* name);
284 virtual bool EvOcAmbientSetScaleUnits(owl::TString* units);
285 virtual bool EvOcAmbientSetFont(IDispatch* font);
286 /// @}
287
288 /// \name Ctrl event specific messages
289 /// @{
290 virtual bool EvOcCtrlClick(TCtrlEvent* pev);
291 virtual bool EvOcCtrlDblClick(TCtrlEvent* pev);
292 virtual bool EvOcCtrlMouseDown(TCtrlMouseEvent* pev);
293 virtual bool EvOcCtrlMouseMove(TCtrlMouseEvent* pev);
294 virtual bool EvOcCtrlMouseUp(TCtrlMouseEvent* pev);
295 virtual bool EvOcCtrlKeyDown(TCtrlKeyEvent* pev);
296 virtual bool EvOcCtrlKeyUp(TCtrlKeyEvent* pev);
297 virtual bool EvOcCtrlErrorEvent(TCtrlErrorEvent* pev);
298 virtual bool EvOcCtrlFocus(TCtrlFocusEvent* pev);
299 virtual bool EvOcCtrlPropertyChange(TCtrlPropertyEvent* pev);
300 virtual bool EvOcCtrlPropertyRequestEdit(TCtrlPropertyEvent* pev);
301 virtual bool EvOcCtrlCustomEvent(TCtrlCustomEvent* pev);
302 /// @}
303
304 owl::TPopupMenu* CreateVerbPopup(const TOcVerb& ocVerb);
305 void EvDoVerb(owl::uint whichVerb);
306 void Init();
307
308 protected:
309/// Points to the embedded object (the part) being dragged.
311
312/// Indicates the position in the embedded object where the user points and clicks
313/// the mouse. This can be any one of the TUIHandle::TWhere enumerated values; for
314/// example, TopLeft, TopCenter, TopRight, MidLeft, MidCenter, MidRight, BottomLeft,
315/// BottomCenter, BottomRight, or Outside when no dragging is taking place.
317
318/// Points to the device context used while an object is being dragged.
320
321/// Indicates the point (in logical units) where the mouse is over the dragged object.
323
324/// Holds the rectangle being dragged.
326
327/// Holds the point where the dragging of the embedded object began.
329
330/// Holds the current scaling factor. The server uses this information to determine how to scale the document.
332
333/// Holds the current area in the window where the object is embedded. Pos reflects
334/// the area where the object is moved if you move the object.
336
337/// Holds the ObjectComponents document associated with this TOleWindow.
339
340/// Holds the ObjectComponents view or remote view (the server's) associated with the TOleWindow view.
342
343/// Holds the ObjectComponents application associated with this TOleWindow.
345
346/// Holds the name of the container. The server displays the container's name when an
347/// embedded object is being edited in the server's window (referred to as out-of-place editing).
349
350/// Returns true if the window represents an embedded server. Returns false otherwise.
351 bool Remote;
352
353/// Is true if the embedded object's frame (the gray or shaded brushes around the object)
354/// is displayed. The frame can be turned on or off depending on how you want the object to appear.
356
357/// The minimum width of the part.
359
360/// The minimum height of the part.
362
365};
366
368
369//
370/// \class TOleClientDC
371// ~~~~~ ~~~~~~~~~~~~
372/// Derived from TClientDC, TOleClientDC is a helper class that translates between
373/// two different coordinate systems. For example, the window's logical points may
374/// be measured in HIMETRIC or twips, whereas the coordinates of the actual output
375/// device (the viewport) may be measured in pixels. Without the help of this class,
376/// you would need to create a client DC and then setup the window's logical
377/// coordinates (its origin) and its width and height (its extent) as well as the
378/// viewport's origin (measured in device coordinates) and extent. Instead,
379/// TOleClientDC performs these calculations for you by mapping logical points to
380/// device points and vice versa.
381/// TOleClientDC works with a TOleWindow object. By default, TOleClientDC takes care
382/// of both scaling (adjusting the extents of the window and the viewport) and
383/// scrolling (adjusting the origins of the window and the viewport).
384//
386 public:
387 TOleClientDC(TOleWindow& win, bool scale = true);
388};
389
390// Generic definitions/compiler options (eg. alignment) following the
391// definition of classes
392#include <owl/posclass.h>
393
394// --------------------------------------------------------------------------
395// Inline implementation
396//
397
398//
399/// Returns the ObjectComponents document associated with this window. This document
400/// can be either a container's or a server's document. If this is a TOcDocument
401/// created by the container, the document is an entire compound document, which may
402/// consist of one or more embedded objects. If this is a TOcDocument created by the
403/// server, the document is a single OLE object's data.
404//
406 return OcDoc;
407}
408
409//
410/// Points to the ObjectComponents container view associated with this window. The
411/// container view holds the compound document (that is a document containing one or
412/// more embedded objects).
413//
415 return OcView;
416}
417
418//
419/// Returns the server's view associated with this window. In order to draw the OLE
420/// object in the container's window, the server creates a remote view.
421///
422/// \note Returns 0 in case of failure. For example, a TOleWindow of a
423/// container application does not have an associated 'TOcRemView'
424/// and will return 0.
425//
429
430//
431/// Returns the ObjectComponents application associated with this window. Every
432/// ObjectComponents application that supports linking and embedding has an
433/// associated TOcApp object.
435 return OcApp;
436}
437
438//
439/// Selects the embedded object and returns true to indicate that the object has
440/// been selected.
442 return DragPart != 0;
443}
444
445//
446/// Returns true if the window represents an embedded server. Returns false
447/// otherwise.
448inline bool TOleWindow::IsRemote() const {
449 return Remote;
450}
451
452//
453/// Repaints the selected portion of a document on the given device context. The
454/// parameter userData, which TocDataProvider passes to the application, contains
455/// information the application uses to repaint the selection. Similar to a moniker,
456/// this information tells the application where to find the selection and how to
457/// repaint it.
458inline bool TOleWindow::PaintSelection(owl::TDC& /*dc*/, bool /*erase*/,
459 owl::TRect& /*rect*/, void* /*userData*/) {
460 return false;
461}
462
463//
464/// Repaints part of an object on the given device context. The erase parameter is
465/// true if the background of the part is to be repainted. rect indicates the area
466/// that needs repainting. metafile indicates whether or not the part is a metafile.
467/// By default, PaintLink returns false. If your application supports working with
468/// parts of an object, you should override the PaintLink function, providing your
469/// own implementation for painting an object part.
470/// For more information, see Step 17 of the OWL tutorial.
471inline bool TOleWindow::PaintLink(owl::TDC& /*dc*/, bool /*erase*/,
472 owl::TRect& /*rect*/, owl::TString& /*moniker*/) {
473 return false;
474}
475
476//
477/// Handles a WM_OCEVENT message concerning the embedded or linked object in the
478/// document and invalidates the part.
479/// If the TOleWindow object is unable to handle the message, EvOcPartInvalid
480/// returns false.
481inline bool TOleWindow::EvOcPartInvalid(TOcPart & /*part*/) {
482 return false;
483}
484
485/// On linking must be implemented and return the file name
486inline LPCTSTR TOleWindow::GetFileName() {
487 return nullptr;
488}
489
490} // OCF namespace
491
492#endif
OCF Application class.
Definition ocapp.h:144
Class representing an embedded control within a document.
Definition occtrl.h:78
OC Document class, holds parts & is a owner of views.
Definition ocdoc.h:43
Used to obtain the native clipboard format data.
Definition ocview.h:416
Used to obtain the item name for building monikers.
Definition ocview.h:403
View/Data change info.
Definition ocpart.h:216
OC part class represents an embeded or linked part in a document.
Definition ocpart.h:38
Used to obtain the size of the rectangle that encloses the selection.
Definition ocview.h:364
Remote Viewer object for a server document.
Definition ocremvie.h:26
Use when doing parts save and load.
Definition ocview.h:326
The TOcView partner is a container (viewer) of a given (server/client) document.
Definition ocview.h:136
Derived from TClientDC, TOleClientDC is a helper class that translates between two different coordina...
Definition olewindo.h:385
The generic OLE2 window. Use as a client of a frame window.
Definition olewindo.h:91
TOcDocument * OcDoc
Holds the ObjectComponents document associated with this TOleWindow.
Definition olewindo.h:338
TOcView * GetOcView()
Points to the ObjectComponents container view associated with this window.
Definition olewindo.h:414
owl::TPoint DragPt
Indicates the point (in logical units) where the mouse is over the dragged object.
Definition olewindo.h:322
owl::TPoint DragStart
Holds the point where the dragging of the embedded object began.
Definition olewindo.h:328
DECLARE_RESPONSE_TABLE(TOleWindow)
int MinWidth
The minimum width of the part.
Definition olewindo.h:358
bool Remote
Returns true if the window represents an embedded server. Returns false otherwise.
Definition olewindo.h:351
DECLARE_STREAMABLE_OCF(TOleWindow, 1)
virtual LPCTSTR GetFileName()
On linking must be implemented and return the file name.
Definition olewindo.h:486
owl::TRect DragRect
Holds the rectangle being dragged.
Definition olewindo.h:325
owl::TUIHandle::TWhere DragHit
Indicates the position in the embedded object where the user points and clicks the mouse.
Definition olewindo.h:316
virtual bool PaintLink(owl::TDC &dc, bool erase, owl::TRect &rect, owl::TString &moniker)
Repaints part of an object on the given device context.
Definition olewindo.h:471
owl::TRect Pos
Holds the current area in the window where the object is embedded.
Definition olewindo.h:335
bool SelectEmbedded()
Selects the embedded object and returns true to indicate that the object has been selected.
Definition olewindo.h:441
TOcPart * DragPart
Points to the embedded object (the part) being dragged.
Definition olewindo.h:310
int MinHeight
The minimum height of the part.
Definition olewindo.h:361
bool EvOcPartInvalid(TOcPart &)
Handles a WM_OCEVENT message concerning the embedded or linked object in the document and invalidates...
Definition olewindo.h:481
owl::tstring ContainerName
Holds the name of the container.
Definition olewindo.h:348
TOcApp * GetOcApp()
Returns the ObjectComponents application associated with this window.
Definition olewindo.h:434
owl::TDC * DragDC
Points to the device context used while an object is being dragged.
Definition olewindo.h:319
TOcScaleFactor Scale
Holds the current scaling factor. The server uses this information to determine how to scale the docu...
Definition olewindo.h:331
TOcRemView * GetOcRemView()
Returns the server's view associated with this window.
Definition olewindo.h:426
virtual bool PaintSelection(owl::TDC &dc, bool erase, owl::TRect &rect, void *userData=0)
Repaints the selected portion of a document on the given device context.
Definition olewindo.h:458
TOcApp * OcApp
Holds the ObjectComponents application associated with this TOleWindow.
Definition olewindo.h:344
bool ShowObjects
Is true if the embedded object's frame (the gray or shaded brushes around the object) is displayed.
Definition olewindo.h:355
bool IsRemote() const
Returns true if the window represents an embedded server.
Definition olewindo.h:448
TOcView * OcView
Holds the ObjectComponents view or remote view (the server's) associated with the TOleWindow view.
Definition olewindo.h:341
TOcDocument * GetOcDoc()
Returns the ObjectComponents document associated with this window.
Definition olewindo.h:405
A device context class derived from TWindowDC, TClientDC provides access to the client area owned by ...
Definition dc.h:640
Base class for an extensible interface for auto enabling/disabling of commands (menu items,...
Definition window.h:209
TDC is the root class for GDI DC wrappers.
Definition dc.h:64
TDropInfo is a simple class that supports file-name drag-and-drop operations using the WM_DROPFILES m...
Definition wsyscls.h:257
ObjectWindows dynamic-link libraries (DLLs) construct an instance of TModule, which acts as an object...
Definition module.h:75
TPoint is a support class, derived from tagPOINT.
Definition geometry.h:87
TPopupMenu creates an empty pop-up menu to add to an existing window or pop-up menu.
Definition menu.h:189
TRect is a mathematical class derived from tagRect.
Definition geometry.h:308
The tagSIZE struct is defined as.
Definition geometry.h:234
Reference to reference counted string object TUString Lightweight reference object consisting of a po...
Definition string.h:67
TWhere
Enumeration describing the location of a grapple selection.
Definition uihelper.h:212
TWindow, derived from TEventHandler and TStreamableBase, provides window-specific behavior and encaps...
Definition window.h:414
Definition of GDI DC encapsulation classes: TDC, TWindowDC, TScreenDC, TDesktopDC,...
#define DECLARE_STREAMABLE_INLINES(cls)
Definition objstrm.h:1538
Object Component Framework (COM encapsulation)
Definition appdesc.h:22
TOcInvalidate
Definition ocobject.h:59
class _ICLASS TOcControl
Definition ocdoc.h:34
TOcScrollDir
Definition ocobject.h:52
Object Windows Library (OWLNext Core)
Definition animctrl.h:22
LPARAM TParam2
Second parameter type.
Definition dispatch.h:55
WPARAM TParam1
First parameter type.
Definition dispatch.h:54
LRESULT TResult
Result type.
Definition dispatch.h:52
unsigned short uint16
Definition number.h:33
std::string tstring
Definition defs.h:79
unsigned int uint
Definition number.h:25
#define _OCFCLASS
Definition defs.h:45
Definition of OWL signatures for ObjectComponents messages.
Definition of TOcPart class.
Definition of TOcRemView Class.
#define _ICLASS
Definition oleutil.h:25
#define _OWLCLASS
Definition defs.h:338
#define TYPESAFE_DOWNCAST(object, toClass)
Definition defs.h:269
Base struct for all control event messages.
Definition occtrl.h:366
For viewdrop & viewdrag.
Definition ocview.h:303
For part adornment painting over part, & painting views.
Definition ocview.h:312
Definition of the UI Helper Classes: TUIHandle, TUIBorder, TUIFace, TUIPart.
Base window class TWindow definition, including HWND encapsulation.