Important: |
---|
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |
This function decrements the global per-process reference count
Syntax
ULONG CoReleaseServerProcess(void); |
Parameters
None.
Return Value
- 0
-
The server application should initiate its cleanup.
- Other values
-
Server application should not yet initiate its cleanup.
Remarks
Servers can call CoReleaseServerProcessto decrement a global per-process reference count incremented through a call to CoAddRefServerProcess.
When that count reaches zero, OLE automatically calls CoSuspendClassObjects, which prevents new activation requests from coming in. This permits the server to deregister its class objects from its various threads without worry that another activation request may come in. New activation requests result in launching a new instance of the local server process.
The simplest way for a local server application to make use of these API functions is to call CoAddRefServerProcessin the constructor for each of its instance objects, and in each of its IClassFactory::LockServermethods when the fLockparameter is TRUE.
The server application should also call CoReleaseServerProcessin the destruction of each of its instance objects, and in each of its IClassFactory::LockServermethods when the fLockparameter is FALSE.
Finally, the server application must check the return code from CoReleaseServerProcess; if it returns 0, the server application should initiate its cleanup. This typically means that a server with multiple threads should signal its various threads to exit their message loops and call CoRevokeClassObjectand CoUninitialize.
If these APIs are used at all, they must be called in both the object instances and the LockServermethod, otherwise the server application may be shutdown prematurely. In-process servers typically should not call CoAddRefServerProcessor CoReleaseServerProcess.
To determine whether the platform supports this function, see Determining Supported COM APIs.
Requirements
Header | objbase.h |
Library | ole32.lib |
Windows Embedded CE | Windows CE 3.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |
See Also
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at webmaster@systemmanager.forsenergy.ru to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.