Поделиться через


Метод IExternalConnection::AddConnection (objidlbase.h)

Увеличивает количество надежных внешних соединений объекта.

Синтаксис

DWORD AddConnection(
  [in] DWORD extconn,
  [in] DWORD reserved
);

Параметры

[in] extconn

Тип внешнего подключения к объекту. Единственным типом внешнего подключения, поддерживаемым в настоящее время этим интерфейсом, является строгий. Это означает, что объект должен оставаться активным до тех пор, пока существует это внешнее соединение. Сильные внешние подключения представлены значением EXTCONN_STRONG, которое определяется в перечислении EXTCONN.

[in] reserved

Сведения о подключении. Этот параметр зарезервирован для использования OLE. Его значение может быть равно нулю, но не обязательно. Поэтому реализации AddConnection не должны содержать блоки кода, выполнение которых зависит от того, возвращается ли нулевое значение.

Возвращаемое значение

Метод возвращает количество подключений. Это значение предназначено для использования только в целях отладки.

Комментарии

Объект, созданный сервером объектов EXE, использует его диспетчер заглушки для вызова AddConnection при активации клиента связи и, следовательно, создает внешнюю блокировку объекта. Когда клиент связи прерывает подключение, диспетчер заглушки вызывает IExternalConnection::ReleaseConnection , чтобы освободить блокировку.

Приложения объектов DLL существуют в том же пространстве процесса, что и их объекты, поэтому они не используют RPC (удаленные вызовы процедур) и не имеют диспетчеров заглушки для отслеживания внешних подключений. Таким образом, серверы DLL, поддерживающие внешние ссылки на свои объекты, должны реализовывать IExternalConnection , чтобы клиенты ссылок могли напрямую вызывать интерфейс для информирования о добавлении или освобождении подключений.

Ниже приведена типичная реализация метода AddConnection .

DWORD MyInterface::AddConnection(DWORD extconn, DWORD dwReserved)
{
    return extconn & EXTCONN_STRONG ? ++m_cStrong : 0;
}

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header objidlbase.h (включая ObjIdl.h)

См. также раздел

IExternalConnection

IRunnableObject::LockRunning

OleLockRunning