|
REGCLS
The REGCLS enumeration defines flags used in CoRegisterClassObject to control the type of connections to the class object. It is defined as
follows:
typedef enum tagREGCLS
{
REGCLS_SINGLEUSE = 0,
REGCLS_MULTIPLEUSE = 1,
REGCLS_MULTI_SEPARATE = 2,
} REGCLS;
Elements
REGCLS_SINGLEUSE
Specifies that once an application has connected to the class object with CoGetClassObject, the class object is removed from public view so that no other applications
can connect to it. This flag is commonly used for single document interface
(SDI) applications. Specifying this flag does not affect the responsibility of the
object application to call CoRevokeClassObject; it must always call CoRevokeClassObject when it is finished with an object class.
REGCLS_MULTIPLEUSE
Specifies that multiple applications can connect to the class object through
calls to CoGetClassObject.
REGCLS_MULTI_SEPARATE
Similar to REGCLS_MULTIPLEUSE, except that REGCLS_MULTI_SEPARATE does not
automatically register the class object as CLSCTX_INPROC_SERVER for a local server.
Instead, it provides separate control over each context. When a class is
registered this way, if that server tries to bind to an object with its own class
id, it will start another copy of the server.
Comments
In CoRegisterClassObject, members of both the REGCLS and the CLSCTX enumerations, taken together, determine how the class object is registered.
The following table summarizes the allowable flag combinations and the object
registrations affected by the combinations:
|
REGCLS_
SINGLEUSE
|
REGCLS_
MULTIPLEUSE
| REGCLS_
MULTI_
SEPARATE
|
Other
| CLSCTX_
INPROC_
SERVER
| Error
| Inproc
| Inproc
| Error
| CLSCTX_
LOCAL_
SERVER
| Local
| Inproc/local
| Local
| Error
| Both of the above
| Error
| Inproc/local
| Inproc/local
| Error
| Other
| Error
| Error
| Error
| Error
|
REGCLS_MULTIPLEUSE in combination with CLSCTX_LOCAL_SERVER automatically
registers the class object as an in-process server (CLSCTX_INPROC_SERVER). In
contrast, registering a class object as a local server and specifying
REGCLS_MULTIPLE_SEPARATE does not register the class object as an in-process server (registers
the object with the CLSCTX_LOCAL_SERVER flag, but does not automatically add
the CLSCTX_INPROC_SERVER flag as is the case when you specify the
REGCLS_MULTIPLEUSE flag. This distinction is important in applications that are both OLE
containers and OLE embeddings, allowing a container/server to be inserted into
itself.
In general, the following two registrations have the same effect -- they
register class objects as both multiple-use and as in-process servers:
CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE
(CLSCTX_INPROC_SERVER|CLSCTX_LOCAL_SERVER), REGCLS_MULTI_SEPARATE
The following registers the class object only as a multiple-use local server:
CLSCTX_LOCAL_SERVER, REGCLS_MULTI_SEPARATE
See Also
CoGetClassObject, CoRegisterClassObject, CoRevokeClassObject, DllGetClassObject
| Last news from Greatis Software |
 |
|
Nostalgia .Net |
|
.Net is powerful, but not all-powerful, so sometimes we need to use Win32 API for our .Net applications. It's simple enough with Platform Invoke if you have Win32 skill, but we do not always have time to dig the ancient documentation, declare the special types that are compatible with Win32, find the values of the Win32's constants and so on. Nostalgia .Net offers several simple-to-use classes, and components that will allow you to forget about the headache of Win32 and just use the power of Win32 in your application the same way as you use the native. Net classes. More » |
| Recommended software for developers |
 |
|
Ultimate Pack |
|
Component pack for Delphi and C++ Builder that contains runtime form designer, runtime object inspector, print suite and much more for the very special price. More » |
 |
|
Form Designer .Net |
|
Unique runtime form design solution that allows to edit any form in .Net WinForms application at runtime with full source codes for only 300 euro! More » |
 |
|
Print Suite .Net |
|
Print Suite .Net is a set of components for easy printing texts, images and grids from your WinForms applications. Full C# source codes are available More » |
 |
|
Gradient Controls .Net |
|
Gradient Controls .Net offers controls with gradient background feature. Labels, panels and so on... Full C# source codes are available More » |
 |
|
Greatis iGrid |
|
iGrid plots drawing grid right over your desktop, so you can use it everywhere, with any drawing application without any special plugins for different graphic editors. More » |
All the contacts and projectsDmitry Vasiliev (just.dmitry)
Related LinksSoftware for Visual Studio .NET developers Software for Delphi and C++ Builder developers Software for Visual Basic 6 developers Delphi Tips&Tricks MegaDetailed.NET More Online Helps Win32 Programmer's Reference Win32 Multimedia Programmer's Reference OLE Programmer's Reference Microsoft Windows Pen API Programmer's Reference Microsoft Windows Sockets 2 Reference Microsoft Windows Telephony API (TAPI) Programmer's Reference Unix Manual Pages
|