функция TSPI_providerRemove (tspi.h)
Функция TSPI_providerRemove устарела. Поставщики служб TAPI версии 1.4 или более ранних версий могут реализовать эту функцию TSPI. TSP TAPI версии 2.0 или более поздней реализуют TUISPI_providerRemove.
Функция TSPI_providerRemove запрашивает у пользователя подтверждение исключения поставщика услуг. Поставщик услуг должен удалить все записи реестра, добавленные поставщиком услуг во время addProvider , а также другие модули и файлы, которые больше не нужны.
Синтаксис
LONG TSPIAPI TSPI_providerRemove(
HWND hwndOwner,
DWORD dwPermanentProviderID
);
Параметры
hwndOwner
Дескриптор родительского окна, в котором функция может создавать любые диалоговые окна, необходимые во время удаления.
dwPermanentProviderID
Постоянный идентификатор поставщика услуг.
Возвращаемое значение
Возвращает ноль, если функция выполнена успешно, или номер ошибки при возникновении ошибки. Возможные возвращаемые значения:
LINEERR_OPERATIONFAILED, LINEERR_INIFILECORRUPT, LINEERR_NOMEM LINEERR_INVALPARAM.
Комментарии
Эта функция должна гарантировать, что раздел поставщика услуг и частные сведения о поставщике услуг будут удалены из реестра, если он возвращает успешное выполнение. В частности, необходимо удалить раздел [PPID> поставщика<], PPID> которого <соответствует dwPermanentProviderID, включая его записи NumLines и NumPhones. Если функция возвращает успешное выполнение, вызывающий объект отвечает за удаление соответствующих записей ProviderIDx и ProviderFilenamex из раздела [Поставщики] и соответствующим образом изменить нумерацию остальных записей в разделе [Поставщики].
Эта процедура должна оставить систему в согласованном состоянии. Он должен выполняться до завершения, не позволяя пользователю прервать удаление, когда оно частично завершено. Если удаление завершается сбоем, поставщик несет ответственность за то, что было сделано, и возвратить ошибку. Это может означать предварительную проверку, чтобы убедиться, что полное удаление возможно до начала удаления.
Эту функцию можно вызывать, когда используется поставщик услуг (то есть между TSPI_providerInit и TSPI_providerShutdown). Если это произойдет, поставщик услуг должен выполнить соответствующую комбинацию отображения диалогового окна пользователя, чтобы объявить о любом конфликте и подтвердить удаление, ограничить варианты удаления теми, которые могут выполняться прозрачно, или выдачи LINE_CLOSE и PHONE_CLOSE сообщений, чтобы сообщить TAPI и приложениям о том, что затронутые устройства были принудительно закрыты для удаления. В любом случае любые изменения, влияющие на поведение, видимое через TSPI, должны вступают в силу только в том случае, если поставщик услуг завершает работу на следующем TSPI_providerShutdown.
Эта функция не должна возвращать LINEERR_INUSE или другие ошибки, которые могут возникнуть из-за того, что поставщик используется приложением; Вместо этого поставщик должен напрямую поговорить с пользователем об этой проблеме, а затем вернуть LINEERR_OPERATIONFAILED, если пользователь решит прервать операцию.
Эта процедура вызывается только один раз во время удаления поставщика услуг, пока не будет вызван TSPI_providerInstall. За это отвечает вызывающий объект.
Служебная программа панель управления телефонии, поставляемая с Телефонией Windows в версиях 1.4 и более ранних версиях, вызывает эту функцию (с требованиями к внешней последовательности, как описано здесь) при вызове команды remove.
Соответствующая функция на уровне TAPI отсутствует. На этом уровне в приложениях ожидается, что поставщики услуг уже установлены; В противном случае их строки и телефоны не отображаются в доступной последовательности идентификаторов устройств. Выполняющие приложения получают сведения о динамической перенастройке, включая удаление поставщиков услуг, с помощью значения LINEDEVSTATE_REINIT или PHONESTATE_REINIT в LINE_LINEDEVSTATE или PHONE_STATE сообщении.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | tspi.h |