|
IExternalConnection::AddConnection
Increments an object's count of its strong external connections (links).
HRESULT AddConnection(
DWORD exconn,
| //Type of external connection
| DWORD dwreserved
| //Used by OLE to pass connection information
| );
|
|
Parameters
exconn
[out] Specifies the type of external connection to the object. The only type
of external connection currently supported by this interface is strong, which
means that the object must remain alive as long as this external connection
exists. Strong external connections are represented by the value EXTCONN_STRONG =
0x0001, which is defined in the enumeration EXTCONN.
dwreserved
Passes information about the connection. This parameter is reserved for use by
OLE. Its value can be zero, but not necessarily. Therefore, implementations of AddConnection should not contain blocks of code whose execution depends on whether a zero
value is returned.
Return Value
DWORD value
The number of reference counts on the object; used for debugging purposes only.
Comments
An object created by a EXE object application relies on its stub manager to
call IExternalConnection::AddConnection whenever a link client activates and therefore creates an external lock on
the object. When the link client breaks the connection, the stub manager calls IExternalConnection::ReleaseConnection to release the lock.
Since DLL object applications exist in the same process space as their
objects, they do not utilize RPC (remote procedure calls) and therefore do not have
stub managers to keep track of external connections. Therefore, DLL object
applications that support external links to their objects must implement IExternalConnection so link clients can directly call the interface to inform them when
connections are added or released.
The following is a typical implementation for the AddConnection method:
DWORD XX::AddConnection(DWORD extconn, DWORD dwReserved)
{
return extconn&EXTCONN_STRONG ? ++m_cStrong : 0;
}
See Also
IExternalConnection::ReleaseConnection, IRunnableObject::LockRunning, OleLockRunning
Related LinksSoftware for Delphi and C++ Builder developers Software for Visual Studio .NET developers Software for Visual Basic 6 developers Delphi Tips&Tricks
MegaDetailed.NET
TMS Scripter Studio Pro components for Delphi/C++Builder
More Online Helps Win32 Programmer's Reference (win32.hlp) Win32 Multimedia Programmer's Reference (mmedia.hlp) Microsoft Windows Pen API Programmer's Reference (penapi.hlp) Microsoft Windows Sockets 2 Reference (sock2.hlp) Microsoft Windows Telephony API (TAPI) Programmer's Reference (sock2.hlp) Unix Manual Pages
|