Функция PeerCollabAsyncInviteContact (p2p.h)
Функция PeerCollabAsyncInviteContact отправляет приглашение доверенному контакту однорангового узла присоединиться к совместной работе отправителя по защищенному соединению. Доступность ответа приглашения обновляется с помощью асинхронного события.
Синтаксис
NOT_BUILD_WINDOWS_DEPRECATE HRESULT PeerCollabAsyncInviteContact(
[in, optional] PCPEER_CONTACT pcContact,
[in] PCPEER_ENDPOINT pcEndpoint,
[in] PCPEER_INVITATION pcInvitation,
[in, optional] HANDLE hEvent,
[optional] HANDLE *phInvitation
);
Параметры
[in, optional] pcContact
Указатель на структуру PEER_CONTACT , содержащую контактные данные, связанные с получателем приглашения. Этот параметр является необязательным.
Чтобы пригласить конечную точку вызывающего однорангового узла, указанного в pcEndpoint, задайте для указателя значение NULL.
[in] pcEndpoint
Указатель на структуру PEER_ENDPOINT , содержащую сведения о конечной точке приглашенного однорангового узла. Конечная точка должна быть связана с одноранговым контактом, указанным в pcContact.
[in] pcInvitation
Указатель на структуру PEER_INVITATION , содержащую запрос приглашения для отправки в конечную точку, указанную в pcEndpoint. E_INVALIDARG возвращается, если для этого параметра задано значение NULL.
[in, optional] hEvent
Обработка события для этого приглашения, созданного при предыдущем вызове CreateEvent. Событие получает сигнал при обновлении состояния асинхронного приглашения. Чтобы получить данные ответа, вызовите PeerCollabGetInvitationResponse.
Если событие не указано, вызывающий объект должен опросить результат, вызвав PeerCollabGetInvitationResponse.
[optional] phInvitation
Указатель на дескриптор отправленного приглашения. Платформа будет очищать сведения об ответе после получения ответа приглашения, если задано значение NULL . Если значение NULL не является указанным дескриптором для предоставленного приглашения, его необходимо закрыть путем вызова PeerCollabCloseHandle.
Возвращаемое значение
Возвращает S_OK, если функция выполнена успешно. В противном случае функция возвращает одно из следующих значений.
Код возврата | Описание |
---|---|
|
Недостаточно памяти для поддержки этой операции. |
|
Один из аргументов недопустим. |
|
pcEndpoint имеет значение NULL. |
|
Одноранговая инфраструктура Windows не инициализирована. Вызов соответствующей функции инициализации является обязательным. |
Комментарии
Этот API гарантирует, что одноранговый узел, получающий приглашение, является контактом, указанным в качестве входных данных. Подключение завершится ошибкой, если конкретный контакт отсутствует в указанной конечной точке. Вместо менее безопасной точки PeerCollabAsyncInviteContact рекомендуется использовать PeerCollabAsyncInviteEndpoint.
Появится всплывающее уведомление для получателя приглашения. Это всплывающее уведомление будет преобразовано в диалоговое окно, в котором пользователь может принять или отклонить приглашение. После успешного принятия приглашения приложение для совместной работы запускается на компьютере получателя.
Чтобы успешно получить приглашение, приложение должно быть зарегистрировано на компьютере получателя с помощью PeerCollabRegisterApplication. Кроме того, отправитель приглашения может вернуть коды сбоев, так как получатель отключил приглашения приложений.
Функция PeerCollabGetInvitiationResponse возвращает PEER_E_CONNECTION_FAILED, если контакт, которому отправляется приглашение, не принимает приглашения.
Если получатель принимает приглашения только от доверенных контактов, отправитель приглашения должен быть добавлен в хранилище контактов компьютера получателя. Отправитель должен быть добавлен в хранилище контактов перед попыткой приглашения. Чтобы добавить контакт в хранилище контактов, вызовите PeerCollabAddContact.
Чтобы отменить незавершенное приглашение, вызовите PeerCollabCancelInvitation.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Ни одна версия не поддерживается |
Целевая платформа | Windows |
Header | p2p.h |
Библиотека | P2P.lib |
DLL | P2P.dll |