Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Русский_Проект: Изучение Visual Basic


Информационный Канал Subscribe.Ru

Русский_Проект: Рассылка Вступление
Баги с некоторыми ActiveX
Функции API

Вступление

Здравствуйте!
Решил вас порадовать еще одним выпуском рассылки. Вполне возможно, что мне придется делать перерыв в связи со сносом хрущевки и переездом на новую квартиру. Не скучайте, изучайте бейсик самостоятельно!

Баги с некоторыми ActiveX

Совершенно неожиданно на одном компьютере стала возникать проблема. При попытке добавить на форму элемент управления RichTextBox стала появляться надпись:
License Information For This Component Not Found. You Do Not Have An Appropriate License To Use This Functionality In The Design Environment.
и данный элемент нельзя было использовать в проектах. Вероятно этот сбой произошел после удаления Office XP. В поисках решения этой проблемы я обнаружил следующее. Оказывается это типичная проблема и Майкрософт знает о ней. И даже выпустила небольшую утилитку для решения этой проблемы. Список таких элементов, которые подвержены этому сбою, внушителен - 24 штуки. Среди них такие распространенные, как ADO Data Control 6.0, Common Dialog Control 6.0, MAPI Controls 6.0, Masked Edit Control 6.0, Multimedia Control 6.0, Rich Textbox Control 6.0, SysInfo Control 6.0, Windows Common Controls-3 6.0, Windows Common Controls 5.0 (SP2), Windows Common Controls 6.0, Windows Common Controls-2 5.0 (SP2), Windows Common Controls-2 6.0, Winsock Control 6.0. Кроме вышеописанного сбоя во время разработки проекта, возможны еще три причины ошибок - во время компиляции в exe-файл, во время использования Application Wizard и во время запуска проекта. Если в вашем проекте вдруг возникают подобные ошибки, возможно вы используете "испорченные" ActiveX. На данной страничке вы найдете небольшую утилитку VB6CLI.EXE, которая восстанавливает работоспособность ваших элементов управления.

Функции API

Сегодня мы познакомимся с функцией IsValidURL.
Declare Function IsValidURL Lib "URLMON.DLL" (ByVal pbc As Long, ByVal szURL As String, ByVal dwReserved As Long) As Long

Функция IsValidURL определяет, может ли указанная строка являться правильным адресом

Параметры

pbc
Не используйте. Установите равным 0
szURL
Строка, служащая для проверки адреса
dwReserved
Зарезервировано. Установите равным 0
Пример
' Проверим две строки на соответствие правилам URL

MsgBox CStr(IsGoodURL("http://rusproject.narod.ru/"))
MsgBox CStr(IsGoodURL("rusproject.narod.ru"))

' Функция-обертка
Public Function IsGoodURL(ByVal sURL As String) As Boolean
' Функция ожидает UNICODE-строку
' но VB, вызывая API-функцию, конвертирует ее в ANSI-строку.
' Поэтому, мы прибегаем к такому трюку: Перед вызовом функции
' мы конвертируем unicode-строку в unicode еще раз,
' в результате получаем "двойную" unicode-строку.
' Теперь, VB вызывая функцию, конвертирует нашу строку
' и мы получаем нормальную unicode-строку,
' которая требуется для нашей функции
    sURL = StrConv(sURL, vbUnicode)
' Вызываем функцию
    IsGoodURL = (IsValidURL(ByVal 0&, sURL, 0) = S_OK)
End Function
Описание данной функции войдет в Cправочник по сетевым функциям API, доступный только зарегистрированным пользователям

С наступающим Новым годом!

Присылайте ваши предложения по адресу rusproject@mail.ru
Посетите сайт Русский_Проект, где вы найдете другую интересную информацию
Давайте делать рассылку вместе! Счастливого вам программирования!



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное