В настоящее время вы работаете в автономном режиме; ожидается повторное подключение к Интернету

Как получить URL-адрес веб-страницы из элемента управления ActiveX

ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.

Эта статья на английском языке:181678
Заявление об отказе относительно содержимого статьи о продуктах, поддержка которых прекращена
Эта статья содержит сведения о продуктах, поддержка которых корпорацией Майкрософт прекращена. Поэтому она предлагается как есть и обновляться не будет.
Аннотация
В этой статье показано, как элемент управления ActiveX может получать унифицированного указателя ресурса (URL) веб-страницы (документ), на которой он будет размещен.

Это может быть полезно для ограничения использования элемента управления ActiveX для определенного домена или узла или для доступа к файлам, если указан относительный путь.
Дополнительная информация
Во время инициализации встроенных элементов управления ActiveX Internet Explorer (IE), вызывающий IOleObject::SetClientSite() передает указатель сайт клиента. Этот процесс может использоваться для доступа к объектной модели документа для получения URL-адрес для размещения веб-страницы или получить специальное имя для контейнера.

В этой статье показано, как для извлечения текущего URL-адреса из специального имени контейнера. За дополнительной информацией о том, как получить URL-адрес из объектной модели документа обратитесь к следующей статье Microsoft Knowledge Base:
172763ИНФОРМАЦИЯ: Доступ К объектной модели В элемент управления ActiveX
Выполните следующие действия для получения текущего URL-адреса из специального имени контейнера.
  1. Получите указатель интерфейса на веб-узла (IOleClientSite) клиента. Контейнер вызывает IOleObject::SetClientSite() передать указатель на узле клиента. Переопределите этот метод для указателя this в кэш.
  2. Получите специальное имя узла клиента, вызывающий IOleClientSite::GetMoniker().
  3. Вызов IMoniker::GetDisplayName() для получения URL-адрес текущего документа.
В следующем примере кода демонстрируется переопределение метода IOleObject::SetClientSite() в элементе управления ActiveX библиотеки шаблонных классов (ATL) для выполнения действий, описанных выше.

Пример программы

STDMETHOD(SetClientSite)(IOleClientSite *pClientSite){   if (pClientSite != NULL)   {      // Obtain URL from container moniker.      CComPtr<IMoniker> spmk;      LPOLESTR pszDisplayName;      if (SUCCEEDED(pClientSite->GetMoniker(                                    OLEGETMONIKER_TEMPFORUSER,                                    OLEWHICHMK_CONTAINER,                                    &spmk)))      {         if (SUCCEEDED(spmk->GetDisplayName(                                 NULL, NULL, &pszDisplayName)))         {            USES_CONVERSION;            CComBSTR bstrURL;            bstrURL = pszDisplayName;            ATLTRACE("The current URL is %s\n", OLE2T(bstrURL));            CoTaskMemFree((LPVOID)pszDisplayName);         }      }   }   return IOleObject_SetClientSite(pClientSite);}				
Ссылки
Дополнительные сведения об интерфейсах IOleObject IoleClientSite и IOleContainer обратитесь к справке Microsoft Visual C++.

(c) Корпорация Майкрософт 1998 года, все права защищены. Сообщения помечать Davis, корпорация Майкрософт

Внимание! Эта статья переведена автоматически

Свойства

Номер статьи: 181678 — последний просмотр: 11/14/2010 22:30:00 — редакция: 2.0

  • kbhowto kbmt KB181678 KbMtru
Отзывы и предложения
">