Метод OpenURL выполняет различные действия для разных типов URL. Вы можете использовать метод OpenURL для доступа к серверу FTP:
CStdioFile* OpenURL(
LPCTSTR pstrURL,
DWORD dwContext = 1,
DWORD dwFlags = 0,
LPCTSTR pstrHeaders = NULL,
DWORD dwHeadersLength = 0
);
throw ( CInternetException );
Первый параметр pstrURL является обязательным. Через него вы должны передать указатель на строку, содержащую адрес URL объекта. Метод OpenURL предназначен для получения доступа к серверам FTP, WWW, системе Gopher и файлам на локальном компьютере. Поэтому в качестве схемы доступа URL могут быть указаны только ftp:, gopher:, http: и file:.
Метод OpenURL возвращает указатель на объект класса CStdioFile, соответствующий заданному адресу URL. Заметим, что этот указатель может указывать на объекты различных классов, для которых класс CStdioFile является базовым. Класс объекта на который возвращает указатель метод OpenURL, зависит от типа URL.
Метод OpenURL выполняет разбор полученной им строки URL. Для этого используется уже описанный нами метод AfxParseURL (раздел “Глобальная функция AfxParseURL”).
Если метод OpenURL определяет, что в качестве параметра pstrURL вы указали URL файла на локальном компьютере, то он создает новый объект класса CStdioFile и возвращает указатель на него.
При создании объект класса CStdioFile указываются атрибуты CFile::modeRead и CFile::shareCompat. Поэтому файл открывается только для чтения в режиме совместимости. Любой другой процесс может открыть этот файл несколько раз. Операция вызывает ошибку, если файл уже открыт другим процессом в любом другом режиме кроме режима совместимости.
Если вы указали методу OpenURL строку URL со схемой доступа ftp:, gopher: или http:, то он устанавливает связь с соответствующим объектом, используя для этого функцию InternetOpenUrl из программного интерфейса WinInet.
Установив соединение с объектом URL, метод OpenURL создает новый объект класса CGopherFile, CInternetFile или CHttpFile, в зависимости от типа URL и возвращает указатель на этот объект:
|
Тип URL |
Указатель на объект класса |
|
file: |
CStdioFile |
|
http: |
CHttpFile |
|
gopher: |
CGopherFile |
|
ftp: |
CInternetFile |
|
Константа |
Описание |
|
INTERNET_FLAG_RELOAD |
Загрузить данные из сети, даже если они уже получены и записаны в кэше |
|
INTERNET_FLAG_DONT_CACHE |
Не выполнять кэширование принимаемых данных |
|
INTERNET_FLAG_SECURE |
Используется при передаче запросов HTTP с использованием Secure Sockets Layer или PCT |
|
INTERNET_OPEN_FLAG_USE_EXISTING_CONNECT |
Указывает использовать установленное соединение с сервером для новых запросов, передаваемых методом OpenUrl. В противном случае каждый последующий вызов OpenUrl будет создавать новвый сеанс связи |
|
INTERNET_FLAG_PASSIVE |
Используется при работе с серверами FTP. Выполняется пассивное соединение с сервером. Более подробное описание смотрите в документации к Microsoft Visual C++ |