OWLNext    7.0
Borland's Object Windows Library for the modern age
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
ocapp.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/// Definition of TOcApp application connection class
6//----------------------------------------------------------------------------
7
8#if !defined(OCF_OCAPP_H)
9#define OCF_OCAPP_H
10
11#include <owl/private/defs.h>
12#if defined(BI_HAS_PRAGMA_ONCE)
13# pragma once
14#endif
15
16#include <ocf/ocbocole.h>
17#include <ocf/ocobject.h>
18#include <ocf/ocreg.h>
19#include <ocf/autodefs.h>
20#include <ocf/ocdata.h>
21#include <ocf/ocapp.rh>
22#include <owl/dispatch.h>
23#include <owl/contain.h>
24
25namespace owl {class _OWLCLASS TRegLink;};
26namespace owl {class _OWLCLASS TRegList;};
27
28namespace ocf {
29
30// Generic definitions/compiler options (eg. alignment) preceding the
31// definition of classes
32#include <owl/preclass.h>
33
35class _ICLASS TOcClassMgr;
37
38//
39// OCF Mixin classes for users derived application class
40//
41#if !defined(_OCMCLASS)
42# define _OCMCLASS
43#endif
46
47//
48/// \class TOcFormatName
49// ~~~~~ ~~~~~~~~~~~~~
50/// Clipboard format name
51//
53 public:
55 TOcFormatName(LPCTSTR fmtName, LPCTSTR fmtResultName, LPCTSTR id = 0);
56
57 bool operator ==(const TOcFormatName& other) const {return owl::ToBool(&other == this);}
58 LPCTSTR GetId() const {return Id.c_str();}
59 LPCTSTR GetName() const {return Name.c_str();}
60 LPCTSTR GetResultName() const {return ResultName.c_str();}
61
62 private:
63 owl::tstring Id; // internal clipboard format name
64 owl::tstring Name; // external name of clipboard format (used in list box)
65 owl::tstring ResultName; // string to be used in the dialog help text
66};
67
68//
69/// \class TOcNameList
70// ~~~~~ ~~~~~~~~~~~
71/// Clipboard format names
72//
73class _OCFCLASS TOcNameList : protected owl::TIPtrArray<TOcFormatName*>
74{
75 public:
78
79 TOcFormatName*& operator [](unsigned index) { return Base::operator[](index);}
80 TOcFormatName* operator [](LPTSTR);
81 void Clear(int del = 1) { Base::Flush(del==1);}
82 int Add(TOcFormatName* name) { return Base::Add(name);}
83 bool IsEmpty() const { return Base::Empty();}
84 bool Find(const TOcFormatName* name) { return Base::Find((TOcFormatName*)name); }
85 owl::uint Count() const { return Base::Size();}
86 bool Detach(TOcFormatName* item, bool del = false)
87 {
88 return del ? Base::DestroyItem(item) : Base::DetachItem(item);
89 }
90
91 private:
93};
94
95#if defined(_OCFDLL) || defined(BI_APP_DLL)
96 //
97 // Export template of owl::TIPtrArray<TOcFormatName*> when building ObjectWindows
98 // DLL and provide import declaration of DLL instance for users of the class.
99 //
100 template class owl::TIPtrArray<TOcFormatName*>;
101#endif
102
103
104//
105/// \class TOcRegistrar
106// ~~~~~ ~~~~~~~~~~~~
107/// Linking & embeding version of the Registrar
108//
110 public:
112 owl::uint32 preselectedOptions, owl::tstring& cmdLine,
113 owl::TRegLink* linkHead = 0,
114 owl::TModule* module = & owl::GetGlobalModule());
116
117 void CreateOcApp(owl::uint32 options, TOcAppHost* host,
118 TOcAppFrameHost* frameHost);
119 void CreateOcApp(owl::uint32 options, TOcApp*& ret);
120 IBClassMgr* CreateBOleClassMgr();
121
122 void SetApp(TOcApp* app);
123
124 protected:
125 void * GetFactory(const GUID& clsid, const GUID & iid);
126 bool CanUnload();
127 void LoadBOle();
128
129 private:
130 HINSTANCE BOleInstance;// BOle DLL instance
131 IBClassMgr* BCmI; //
132 TOcClassMgr* OcClassMgr; // our IBClassMgr implementation
133 int AppCount; // TOcApp instance count
134 friend class _ICLASS TOcApp;
135};
136
137//
138/// \class TOcApp
139// ~~~~~ ~~~~~~
140/// OCF Application class.
141//
142class _ICLASS TOcApp : public TUnknown,
143 private IBApplication,
144 private IBClassMgr {
145 public:
146 // Constructor for OcApp & 2nd part of initialization
147 // host & frameHost are interfaces that OcApp talks back to.
148 //
149 TOcApp(TOcRegistrar& registrar, owl::uint32 options, TOcAppHost* host,
150 TOcAppFrameHost* frameHost);
151 void SetupWindow(TOcAppFrameHost* frameHost);
152
153 // !CQ compatibility only
154 // Constructor for OcApp & 2nd part of initialization
155 // retOcApp is location holding unrefcounted pointer to this OcApp
156 //
157 TOcApp(TOcRegistrar& registrar, owl::uint32 options, TOcApp*& retOcApp);
158 void SetupWindow(HWND frameWnd);
159
160 // Public accessors
161 //
163 owl::tstring GetName() const {return (LPCTSTR)Name;}
164 bool IsOptionSet(owl::uint32 option) const;
165 void SetOption(owl::uint32 bit, bool state);
166
167 // Object reference & lifetime managment
168 //
169 virtual void ReleaseObject();
170
171 // Runtime class factory [un]registration
172 //
173 void RegisterClasses();
174 void UnregisterClasses();
175
176 // Clipboard
177 //
178 void AddUserFormatName(LPCTSTR name, LPCTSTR resultName,
179 LPCTSTR id = 0);
180 TOcNameList& GetNameList() {return NameList;}
181
182 // App side exposure of selected IBService functions
183 //
184 bool UnregisterClass(const owl::tstring& progid);
185 void EvResize();
186 void EvActivate(bool);
187 bool EvSetFocus(bool set) {return HRSucceeded(BServiceI->OnSetFocus(set));}
188 bool RegisterClass(const owl::tstring& progid, BCID classId, bool multiUse);
189 bool TranslateAccel(MSG * msg)
190 {return HRSucceeded(BServiceI->TranslateAccel(msg));}
191 bool ModalDialog(bool enable)
192 {return HRSucceeded(BServiceI->OnModalDialog(enable));}
194 {return BServiceI->HelpMode(newMode);}
195 bool CanClose();
196
197 bool Browse(TOcInitInfo& initInfo);
198 bool BrowseControls(TOcInitInfo& initInfo);
199 bool BrowseClipboard(TOcInitInfo& initInfo);
200 bool Paste(TOcInitInfo& initInfo);
201 bool Copy(TOcPart* ocPart);
202 bool Copy(TOcDataProvider* ocData);
203 bool Drag(TOcDataProvider* ocData, TOcDropAction inAction, TOcDropAction& outAction);
204 bool Drag(TOcPart* ocData, TOcDropAction inAction, TOcDropAction& outAction);
205 bool Convert(TOcPart* ocPart, bool b);
206 owl::uint EnableEditMenu(TOcMenuEnable enable, IBDataConsumer * ocview);
207
208 // Exposure of BOle's componentCreate for internal OCF support
209 //
210 HRESULT BOleComponentCreate(IUnknown * * retIface,
211 IUnknown * outer, owl::uint32 idClass);
212
213 // Internal reference management
214 //
215 owl::ulong _IFUNC AddRef() {return GetOuter()->AddRef();}
216 owl::ulong _IFUNC Release() {return GetOuter()->Release();}
217 HRESULT _IFUNC QueryInterface(const GUID & iid, void ** iface)
218 {return GetOuter()->QueryInterface(iid, iface);}
219 protected:
220 ~TOcApp();
221
224
227
228// !CQ Ripping out the next guys
229 TOcApp** OcAppPtr; // Pointer to this instance, must zero on destruction
230// !CQ owl::TResult ForwardEvent(int eventId, const void* param);
231// !CQ owl::TResult ForwardEvent(int eventId, owl::TParam2 param = 0);
232
233 // TUnknown virtual overrides
234 //
235 HRESULT QueryObject(const IID & iid, void * * iface);
236
237 private:
238
239 // IBWindow implementation
240 //
241 HWND _IFUNC GetWindow();
242 HRESULT _IFUNC GetWindowRect(owl::TRect * r);
243 LPCOLESTR _IFUNC GetWindowTitle();
244 void _IFUNC AppendWindowTitle(LPCOLESTR title);
245 HRESULT _IFUNC SetStatusText(LPCOLESTR text);
246
247 HRESULT _IFUNC RequestBorderSpace(const owl::TRect *);
248 HRESULT _IFUNC SetBorderSpace(const owl::TRect *);
249
250 HRESULT _IFUNC InsertContainerMenus(HMENU hMenu, TOcMenuWidths * omw);
251 HRESULT _IFUNC SetFrameMenu(HMENU hMenu);
252 void _IFUNC RestoreUI();
253 HRESULT _IFUNC Accelerator(MSG * msg);
254 HRESULT _IFUNC GetAccelerators(HACCEL *, int *);
255
256 // IBApplication implementation
257 //
258 LPCOLESTR _IFUNC GetAppName();
259 TOcHelp _IFUNC HelpMode(TOcHelp newMode);
260 HRESULT _IFUNC CanLink();
261 HRESULT _IFUNC CanEmbed();
262 HRESULT _IFUNC IsMDI();
263 HRESULT _IFUNC OnModalDialog(BOOL svrModal);
264 void _IFUNC DialogHelpNotify(TOcDialogHelp);
265 void _IFUNC ShutdownMaybe();
266
267 // IBClassMgr implementation
268 //
269 HRESULT _IFUNC ComponentCreate(IUnknown * * ret,
270 IUnknown * outer, owl::uint32 classId);
271 HRESULT _IFUNC ComponentInfoGet(IUnknown * * info,
272 IUnknown * outer, owl::uint32 classId);
273
274 void Init();
275
276 TOcRegistrar& Registrar; // Overall application description object
277
278 // BOle side support
279 //
280 IBClassMgr* BCmI; // Our private class maneger
281 IUnknown* BService; // BOle service object & interface
282 IBService2* BServiceI; //
283
285 TOcNameList NameList;
286 bool DisableDlgs; // Server went modal--disable our dialogs
287
288 friend class _ICLASS TOcDocument;
289 friend class _ICLASS TOcPart;
290 friend class _ICLASS TOcRemView;
291 friend class _ICLASS TOcView;
292 friend class _ICLASS TOcClassMgr;
293};
294
295//
296//inline void TOcApp::SetupWindow(TOcAppFrameSocket* frameSocket)
297//{
298// FrameSocket = frameSocket;
299//}
300
301//
302inline bool TOcApp::IsOptionSet(owl::uint32 option) const
303{
304 return owl::ToBool(Options & option);
305}
306
307//
308inline void TOcApp::SetOption(owl::uint32 bit, bool state)
309{
310 if (state)
311 Options |= bit;
312 else
313 Options &= ~bit;
314}
315
316//
318 TOcAppFrameHost* frameHost)
319{
320 new TOcApp(*this, options, host, frameHost);
321}
322
323//
324// Compatibility version of TOcApp creator
325//
326inline void TOcRegistrar::CreateOcApp(owl::uint32 options, TOcApp*& retOcApp)
327{
328 new TOcApp(*this, options, retOcApp);
329}
330
331//----------------------------------------------------------------------------
332
333//
334// ObjectComponents message and subdispatch IDs
335//
336#define WM_BCXNAME (0x7FFF-8) // (WM_VBXNAME) BCX event fire by name
337#define WM_OCEVENT (WM_BCXNAME-1) // OC -> app messages
338
339//
340// Subdispatch IDs for TOcApp clients
341//
342#define OC_APPINSMENUS 0x0100 // Main window insert menus
343#define OC_APPMENUS 0x0101 // Main window set menu
344#define OC_APPPROCESSMSG 0x0102 // Process msg for accel, etc
345#define OC_APPFRAMERECT 0x0103 // Get inner rect of main window
346#define OC_APPBORDERSPACEREQ 0x0104 // Request/set app frame border space
347#define OC_APPBORDERSPACESET 0x0105 // Request/set app frame border space
348#define OC_APPSTATUSTEXT 0x0106 // Set the status text
349#define OC_APPRESTOREUI 0x0107 // Have the app frame restore its UI
350#define OC_APPDIALOGHELP 0x0108 // Ole dialog help button pressed
351#define OC_APPSHUTDOWN 0x0109 // Shutdown app frame window
352#define OC_APPGETACCEL 0x010A // Get accelerators for menu merge
353
354//
355// struct TOcGetAccel
356// ~~~~~~ ~~~~~~~~~~~
358 HACCEL Accel;
359 int Count;
360};
361
362//
363/// \class TOcAppHost
364// ~~~~~ ~~~~~~~~~~
365/// OCF Application host class. Owner of & host for a TOcApp object
366//
368 public:
369 TOcAppHost() : OcApp(0) {} // Must call OcInit after construction
370 ~TOcAppHost();
371
372 void OcInit(TOcRegistrar& registrar, owl::uint32 options);
373 TRegistrar& GetRegistrar() {return OcApp->GetRegistrar();}
374
375 bool IsOptionSet(owl::uint32 option) const;
376
377 virtual void AttachHost(TOcApp* ocApp) {OcApp = ocApp;}
378 virtual void ReleaseOcObject() {OcApp = 0;}
379
380// protected:
381 TOleAllocator OleMalloc; // default to task allocator
383
384 private:
385 owl::uint32 InitOptions;
386};
387
388// Old name don't use it;
389// typedef not work with dynamic_cast of VC ++
390//typedef TOcAppHost TOcModule;
391class TOcModule: public TOcAppHost {
392 public:
395};
396
397//
398/// \class TOcAppFrameHost
399// ~~~~~ ~~~~~~~~~~~~~~~
400/// OCF Application frame window host class. Receives window events from OcApp
401//
403 public:
404 TOcAppFrameHost(TOcApp* ocApp=0) : OcApp(ocApp) {}
405
406 virtual void ReleaseOcObject() {OcApp = 0;}
407
408 virtual bool EvOcAppInsMenus(TOcMenuDescr & sharedMenu) = 0;
409 virtual bool EvOcAppMenus(TOcMenuDescr & md) = 0;
410 virtual bool EvOcAppProcessMsg(MSG * msg) = 0;
411 virtual bool EvOcAppFrameRect(owl::TRect * rect) = 0;
412 virtual bool EvOcAppBorderSpaceReq(owl::TRect * rect) = 0;
413 virtual bool EvOcAppBorderSpaceSet(owl::TRect * rect) = 0;
414 virtual void EvOcAppStatusText(const char * rect) = 0;
415 virtual void EvOcAppRestoreUI() = 0;
416 virtual void EvOcAppDialogHelp(TOcDialogHelp & dh) = 0;
417 virtual bool EvOcAppShutdown() = 0;
418 virtual bool EvOcAppGetAccel(TOcGetAccel * acc) = 0;
419
420 virtual HWND EvOcGetWindow() const = 0;
421
422 // For compatibility
423 virtual void SetWindow(HWND) {}
424
425 protected:
426 TOcApp* OcApp; // !CQ really want this?
427};
428
429//
430/// \class TOcAppFrameHostMsg
431// ~~~~~ ~~~~~~~~~~~~~~~~~~
432/// Default implementation of frame window host that uses messages
433//
435 public:
436 TOcAppFrameHostMsg(TOcApp* ocApp) : Wnd(0), TOcAppFrameHost(ocApp) {}
437
438 void ReleaseOcObject() {delete this;} // We are no longer needed by Oc
439
440 bool EvOcAppInsMenus(TOcMenuDescr & sharedMenu);
441 bool EvOcAppMenus(TOcMenuDescr & md);
442 bool EvOcAppProcessMsg(MSG * msg);
443 bool EvOcAppFrameRect(owl::TRect * rect);
444 bool EvOcAppBorderSpaceReq(owl::TRect * rect);
445 bool EvOcAppBorderSpaceSet(owl::TRect * rect);
446 void EvOcAppStatusText(const char * rect);
447 void EvOcAppRestoreUI();
448 void EvOcAppDialogHelp(TOcDialogHelp & dh);
449 bool EvOcAppShutdown();
450 bool EvOcAppGetAccel(TOcGetAccel * acc);
451
452 HWND EvOcGetWindow() const {return Wnd;}
453
454 void SetWindow(HWND hWnd) {Wnd = hWnd;}
455
456 protected:
457 owl::TResult ForwardEvent(int eventId, const void* param);
458 owl::TResult ForwardEvent(int eventId, owl::TParam2 param = 0);
459
460 private:
461 HWND Wnd;
462};
463
464//
466{
467 if (OcApp)
468 OcApp->ReleaseObject(); // don't delete, just release OC object
469}
470
471inline bool TOcAppHost::IsOptionSet(owl::uint32 option) const
472{
473 return OcApp ? OcApp->IsOptionSet(option) : (InitOptions & option) != 0;
474}
475
476inline void TOcAppHost::OcInit(TOcRegistrar& registrar, owl::uint32 options)
477{
478 InitOptions = options;
479 registrar.CreateOcApp(options, OcApp);
480}
481
482// Generic definitions/compiler options (eg. alignment) following the
483// definition of classes
484#include <owl/posclass.h>
485
486} // OCF namespace
487
488
489#endif // OCF_OCAPP_H
OLE Automation Class Definitions.
IClassMgr abstract base class.
Definition ocbocole.h:184
IBDataConsumer – Supported by containers who want to accept drag/drop and paste.
Definition ocbocole.h:212
OCF Application frame window host class. Receives window events from OcApp.
Definition ocapp.h:402
virtual void EvOcAppRestoreUI()=0
virtual HWND EvOcGetWindow() const =0
virtual bool EvOcAppInsMenus(TOcMenuDescr &sharedMenu)=0
virtual void SetWindow(HWND)
Definition ocapp.h:423
TOcAppFrameHost(TOcApp *ocApp=0)
Definition ocapp.h:404
virtual bool EvOcAppProcessMsg(MSG *msg)=0
virtual bool EvOcAppGetAccel(TOcGetAccel *acc)=0
virtual void EvOcAppDialogHelp(TOcDialogHelp &dh)=0
virtual bool EvOcAppShutdown()=0
virtual bool EvOcAppBorderSpaceReq(owl::TRect *rect)=0
virtual bool EvOcAppFrameRect(owl::TRect *rect)=0
virtual void EvOcAppStatusText(const char *rect)=0
virtual bool EvOcAppMenus(TOcMenuDescr &md)=0
virtual bool EvOcAppBorderSpaceSet(owl::TRect *rect)=0
virtual void ReleaseOcObject()
Definition ocapp.h:406
Default implementation of frame window host that uses messages.
Definition ocapp.h:434
void SetWindow(HWND hWnd)
Definition ocapp.h:454
HWND EvOcGetWindow() const
Definition ocapp.h:452
TOcAppFrameHostMsg(TOcApp *ocApp)
Definition ocapp.h:436
OCF Application host class. Owner of & host for a TOcApp object.
Definition ocapp.h:367
bool IsOptionSet(owl::uint32 option) const
Definition ocapp.h:471
virtual void ReleaseOcObject()
Definition ocapp.h:378
virtual void AttachHost(TOcApp *ocApp)
Definition ocapp.h:377
TOcApp * OcApp
Definition ocapp.h:382
TRegistrar & GetRegistrar()
Definition ocapp.h:373
void OcInit(TOcRegistrar &registrar, owl::uint32 options)
Definition ocapp.h:476
TOleAllocator OleMalloc
Definition ocapp.h:381
OCF Application class.
Definition ocapp.h:144
friend class _ICLASS TOcPart
Definition ocapp.h:289
friend class _ICLASS TOcDocument
Definition ocapp.h:288
owl::ulong _IFUNC AddRef()
Definition ocapp.h:215
TOcApp ** OcAppPtr
Definition ocapp.h:229
friend class _ICLASS TOcView
Definition ocapp.h:291
TOcHelp AppHelpMode(TOcHelp newMode)
Definition ocapp.h:193
TOcAppHost * Host
Definition ocapp.h:225
bool Registered
Definition ocapp.h:223
owl::ulong _IFUNC Release()
Definition ocapp.h:216
friend class _ICLASS TOcRemView
Definition ocapp.h:290
TOcAppFrameHost * FrameHost
Definition ocapp.h:226
owl::tstring GetName() const
Definition ocapp.h:163
void SetOption(owl::uint32 bit, bool state)
Definition ocapp.h:308
bool TranslateAccel(MSG *msg)
Definition ocapp.h:189
bool EvSetFocus(bool set)
Definition ocapp.h:187
virtual void ReleaseObject()
Should only be called by the owner/creator of this object.
Definition ocapp.cpp:173
friend class _ICLASS TOcClassMgr
Definition ocapp.h:292
bool IsOptionSet(owl::uint32 option) const
Definition ocapp.h:302
HRESULT _IFUNC QueryInterface(const GUID &iid, void **iface)
Definition ocapp.h:217
TOcNameList & GetNameList()
Definition ocapp.h:180
owl::uint32 Options
Definition ocapp.h:222
TOcRegistrar & GetRegistrar()
Definition ocapp.h:162
bool ModalDialog(bool enable)
Definition ocapp.h:191
Data Provider object for a container document.
Definition ocdata.h:30
Clipboard format name.
Definition ocapp.h:52
LPCTSTR GetName() const
Definition ocapp.h:59
LPCTSTR GetId() const
Definition ocapp.h:58
LPCTSTR GetResultName() const
Definition ocapp.h:60
Clipboard format names.
Definition ocapp.h:74
bool Detach(TOcFormatName *item, bool del=false)
Definition ocapp.h:86
int Add(TOcFormatName *name)
Definition ocapp.h:82
owl::uint Count() const
Definition ocapp.h:85
bool IsEmpty() const
Definition ocapp.h:83
void Clear(int del=1)
Definition ocapp.h:81
bool Find(const TOcFormatName *name)
Definition ocapp.h:84
OC part class represents an embeded or linked part in a document.
Definition ocpart.h:38
Linking & embeding version of the Registrar.
Definition ocapp.h:109
friend class _ICLASS TOcApp
Definition ocapp.h:134
void CreateOcApp(owl::uint32 options, TOcAppHost *host, TOcAppFrameHost *frameHost)
Definition ocapp.h:317
Object to initialize OLE and access memory manager.
Definition oleutil.h:106
Application registration manager interface class.
Definition ocreg.h:109
Standard implementation of a controlling IUnknown for an object, to be inherited with other COM inter...
Definition oleutil.h:264
ObjectWindows dynamic-link libraries (DLLs) construct an instance of TModule, which acts as an object...
Definition module.h:75
TRect is a mathematical class derived from tagRect.
Definition geometry.h:308
A registration parameter table, composed of a list of TRegItems.
Definition registry.h:531
Reference to reference counted string object TUString Lightweight reference object consisting of a po...
Definition string.h:67
Definition of container classes used and made available by OWL.
Dispatch functions (crackers) to crack a Windows message and pass control to a member function via a ...
Object Component Framework (COM encapsulation)
Definition appdesc.h:22
TOcDialogHelp
Definition ocobject.h:27
TOcMenuEnable
Definition ocobject.h:145
owl::uint32 BCID
Definition ocbocole.h:109
IUnknown *(* TComponentFactory)(IUnknown *outer, owl::uint32 options, owl::uint32 id)
Definition appdesc.h:35
bool HRSucceeded(HRESULT hr)
Definition defs.h:131
const GUID & iid
Definition appdesc.h:328
class _ICLASS TOcApp
Definition ocapp.h:36
TOcHelp
Definition ocobject.h:152
class _ICLASS IBApplication
Definition ocbocole.h:138
TOcDropAction
Definition ocobject.h:39
Object Windows Library (OWLNext Core)
Definition animctrl.h:22
unsigned long ulong
Definition number.h:26
unsigned long uint32
Definition number.h:34
LPARAM TParam2
Second parameter type.
Definition dispatch.h:55
bool ToBool(const T &t)
Definition defs.h:291
LRESULT TResult
Result type.
Definition dispatch.h:52
std::string tstring
Definition defs.h:79
unsigned int uint
Definition number.h:25
TModule & GetGlobalModule()
Definition global.cpp:48
#define _OCMCLASS
Definition ocapp.h:42
ObjectComponents BOcOle engine linking & embedding interfaces.
Definition of TOcDataProvider Class.
#define _OCFCLASS
Definition defs.h:45
Various general OC enums and structs.
OLE Registration definitions.
owl::TPointer< ocf::TRegistrar > Registrar
Global registrar object defined by the client application.
#define _IFUNC
Definition oleutil.h:28
#define _ICLASS
Definition oleutil.h:25
#define _OWLCLASS
Definition defs.h:338
HACCEL Accel
Definition ocapp.h:358