Cómo programar navegadores web e IE
Debido a que IWebBrowserApp muestra una instancia de ventana de IE, sus métodos y propiedades generalmente le permiten controlar la interfaz de usuario de la ventana del navegador. Estos Los métodos y propiedades no están incluidos en IWebBrowser de WebBrowser: la aplicación de control de inicio de sesión proporciona interfaces de usuario como barras de estado, barras de herramientas y barras de menú solo para cargar páginas web y otros tipos de archivos.
IWebBrowserApp tiene 4 métodos y. 10 propiedades.
Métodos Las propiedades de la interfaz IWebBrowserApp se organizan visualmente de la siguiente manera, pero hay dos métodos cuyos valores son razonables, como se describe a continuación: GetProperty y PutProperty Le permite almacenar propiedades en el. Bolsa de propiedades de IE y luego recuperarlas más tarde. Normalmente, almacenará cierta información de estado de una página web en otra (de hecho, utilizando la interfaz IWebBrowser2, puede usar este método cuando aloje un control WebBrowser).
Tabla 6-3.Métodos posteriores de IWebBrowserApp vtable
Método
Método
Descripción
Descripción
Método
Descripción
Método
Descripción
Método
Método
Descripción
Método
Salir
Solicitud para cerrar la ventana de Internet Explorer En otras palabras, la operación de cerrar la instancia de IE se realizará automáticamente
. >ClientToWindowConvierte el punto de las coordenadas de la ventana a las coordenadas del cliente.
PutProperty
Almacena el valor de la propiedad en la bolsa de propiedades de IE para usarlo, por ejemplo. Use GetProperty.Get.
GetProperty
GetProperty
GetProperty
Obtener antes de pasar PutProperty.GetProperty("CurrentPicture")
VC++ código:
CSomeClass::PutGetProperty(VARIANT vtCurrentValue, VARIANT* vtNewValue)
{
HRESULT hr;
hr = m_pInternetExplorer- > PutProperty(L "CurrentPicture",
vtCurrentValue);
if (SUCCEEDED(hr))
{
// Nota ese vtNewValue ya es un puntero, por lo que
// no necesita pasar la dirección a GetProperty.
//
hr = m_pInternetExplorer->GetProperty(L" CurrentPicture",
vtNewValue);
}
return hr;
}
El método PutGetProperty acepta un puntero a una variable VARIANT que contiene el valor de propiedad actual y recibe el valor de la propiedad.
Propiedades La interfaz IWebBrowserApp tiene 10 propiedades. Tabla 6-4. Suborden de atributos de IWebBrowserApp vtable
Atributo
Descripción
Nombre
Devuelve el nombre del objeto t (por ejemplo). , Cuando IE se ejecuta automáticamente, Microsoft Internet Explorer devuelve la propiedad Nombre).
HWND
Devuelve el identificador de la ventana de IE
FullName
Devuelve la ruta completa del archivo ejecutable de IE (iexplore.exe ).
Ruta
Devuelve la ruta completa a la aplicación IE.
Visible
Supervise y establezca si la ventana de IE es visible. (En otras palabras, puede usar esta propiedad para mostrar/ocultar)
StatusBar
Mostrar u ocultar la barra de estado de IE y también monitorear la barra de estado actual
StatusText
Establecer u ocultar el texto de la barra de estado
ToolBar
Mostrar u ocultar la barra de herramientas de IE.
MenuBar
Muestra u oculta la barra de menú de IE y monitorea el estado actual de la barra de herramientas
Pantalla completa
Establece o detecta si IE está actualmente valor maximizado. Cuando está maximizado, iE ocupa toda la pantalla
La lista de propiedades en la Tabla 6-4 es simple y fácil de usar. Por ejemplo, si desea obtener el texto en la barra de estado de IE desde un programa Vb, debe usar el siguiente código:
Dim strStatusText
strStatusText = InternetExplorer1.X. El código del programa C++ es el siguiente:
BSTR bstrStatusText;
HRESULT hr = m_pInternetExplorer->get_StatusText(&bstrStatusText);
IWebBrowser2
Debido a que las reglas COM requieren que las interfaces sean constantes, para agregar nuevo trabajo a COM alto, debe agregar nuevas interfaces. Las nuevas interfaces se pueden extender desde otras interfaces para ampliar la funcionalidad. Por ejemplo, cuando llegó el momento de presentar las interfaces WebBrowser e Internet Explorer, se pidió a los desarrolladores que crearan una nueva interfaz:
Al principio, IWebBrowser2 heredó IWebBrowser e IWebBrowserApp y proporcionó funciones que no se encontraban en estas dos interfaces. Por lo tanto, debe utilizar la interfaz IWebBrowser2 para operar el control WebBrowser o Internet Explorer.
La interfaz IWebBrowser2 tiene cuatro métodos y ocho propiedades.
Métodos Los métodos de la interfaz IWebBrowser2 se describen a continuación en orden vtable en la Tabla 6-5.
Probablemente el método más utilizado en la interfaz IWebBrowser2 es ExecWB. Implementa una implementación encapsulada de la interfaz IOleCommandTarget a través de WebBrowser. Implementa una implementación encapsulada de la interfaz IOleCommandTarget a través de WebBrowser. Antes de crear el método ExecWB, no se puede llamar a IOleCommandTarget::Exec directamente desde VB porque VB no tiene acceso a la interfaz IOleCommandTarget y, por lo tanto, VB no puede usar directamente el método ExecWB de esa interfaz.
El método IOleCommandTarget::Exec se utilizó mucho en el pasado, por lo que los desarrolladores de WebBrowser decidieron crear ExecWB para facilitar las cosas.
Tabla 6-5. Métodos de subsecuencia de IWebBrowser2 Vtable
Método
Descripción
Navigate2
Función basada en el enfoque Navegar, excepto que Navigate2 le permite navegar a un lugar representado por una URL rápida, como una carpeta de shell de Windows. (La carpeta del shell de Windows es un puntero a una etiqueta o un PIDL en el espacio de nombres del shell de Windows).
QueryStatusWB
WebCommandTarget utiliza el método QueryStatus de la interfaz IoleCommandTarget.
ExecWB
El método Exec de la interfaz IoleCommandTarget se utiliza para una barra de navegador específica en WebBrowser. Este método sólo se utiliza en objetos de Internet Explorer
¿Por qué llamas al método ExecWB? Porque proporciona la funcionalidad que necesita (a través de IOleCommandTarget::Exec) sin exponer la interfaz del navegador web. Quizás se pregunte por qué los desarrolladores no implementan propiedades y métodos de extensión. Recuerde: la regla de COM es que una vez publicada una interfaz, no se puede cambiar. Por lo tanto, no se puede agregar funcionalidad sin crear una nueva interfaz.
El método ExecWB permite a los desarrolladores de WebBrowser agregar nuevas funciones sin crear una nueva interfaz. Asimismo, ExecWB expone algunos métodos a través del WebBrowser para hacer cosas menos comunes, como llamar al cuadro de diálogo Guardar como o escalar fuentes web. ExecWB funciona pasando el ID del comando que se llamará y los parámetros requeridos. Hay muchos ID de comando y se incluyen en la documentación de implementación de OLECMDID en el archivo de encabezado DocObj.h.
Por ejemplo, admitimos el escalado de fuentes para contenido web. Internet Explorer le permite cambiar el tamaño de fuente de menor a mayor a través del submenú Tamaño de texto en el menú Ver. El método ExecWB se puede utilizar para cambiar el tamaño del texto que se muestra en el navegador. Para el comando de escala, puede especificar un valor especial de 0, 1, 2, 3 o 4, donde 0 es el tamaño de fuente mínimo y 4 es el tamaño de fuente máximo. Aquí hay un ejemplo (VB) de cómo cambiar la fuente al tamaño más grande:
WebBrowser1.ExecWB OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, _
CLng(4), Null
en En el código, vuelvo a llamar al método ExecWB y paso la constante OLECMDID_ZOOM como primer parámetro. Esta constante especifica que se realizará la operación de escalado. El segundo parámetro se pasa a ExecWB sin avisar al usuario. Como alternativa, puede utilizar OLECMDEXECOPT_PROMPTUSER para avisar al usuario. (Ver DocObj.h.)
El tercer parámetro de entrada representa el tamaño del texto que se establecerá. Tenga en cuenta que estoy usando la función Clng de VB para encapsular el valor en la llamada, convirtiendo el valor que especifico en una variable del tipo requerido por la entrada. Finalmente, los parámetros de salida contienen los valores de retorno. Como el valor de retorno es irrelevante, pasé Nulo.
Propiedades La interfaz IWebBrowser2 tiene ocho propiedades. (La Tabla 6-6 muestra estas propiedades en orden vtable). Todos son muy intuitivos y sólo explicaré una de las propiedades relacionadas con Chahiro: la barra de direcciones.
Tabla 6-6. Propiedades de IWebBrowser2 en orden de tabla V
Propiedades
Descripción
ReadyState
Devoluciones el estado del WebBrowser (en otras palabras, esta propiedad indica si el documento ha terminado de cargarse). Aunque puede usar la propiedad ReadyState, es mejor usar el tiempo DocumentComplete para detectar si el documento ha terminado de cargarse. (Esto significa que todo el HTML y los documentos se han cargado
Sin conexión
. Devuelve o establece una variable utilizada para detectar si el navegador web está en modo fuera de línea
Silencioso
RegisterAsBrowser
Establece o devuelve si el navegador web está registrado como navegador de nivel superior
RegisterAsDropTarget
. soltar objeto utilizado para la navegación Si el destino de arrastrar y soltar está registrado, el usuario puede arrastrar y soltar directamente en el navegador.
TheaterMode
Devuelve o establece si Internet Explorer es. en modo cine o modo ventana normal. En modo cine, Internet Explorer ocupa toda la pantalla como en el modo de pantalla completa, pero también minimiza los elementos de la interfaz de usuario (esta propiedad sólo se aplica a los objetos de InternetExplorer)
Dirección. bar
Muestra u oculta la barra de direcciones (esta propiedad solo aplica a objetos de InternetExplorer)
Barra de direcciones
Muestra u oculta la barra de direcciones (esta propiedad solo aplica a objetos de InternetExplorer) ).
Mostrar u ocultar la barra de direcciones (esta propiedad solo se muestra en el objeto de InternetExplorer)
Resizable
Devuelve o establece si Internet Se puede cambiar el tamaño del Explorador. Puede usar esta propiedad para evitar que el usuario cambie el tamaño del navegador web (esta propiedad solo se muestra en el objeto InternetExplorer)
La propiedad AddressBar le permite mostrar/ocultar el Barra de direcciones de Internet Explorer (un campo que contiene entradas). Cuadro de texto de URL que le permite navegar a una URL. Tiene control total sobre la experiencia de navegación del usuario al mostrar u ocultar la barra de direcciones.
Controle la navegación del usuario. experiencia en una red corporativa o una pequeña escuela. Las pequeñas y medianas empresas controlan la experiencia de navegación del usuario. En este entorno, usted controlará la navegación del usuario hasta el punto en que puede determinar que ciertas páginas inapropiadas son inaccesibles. Si tiene el tiempo y los recursos para hacerlo, puede utilizar IE automatizado. IE automatizado le permite manejar toda la interfaz de usuario que permite a los usuarios navegar por la web, como la barra de menú, la barra de herramientas y la barra de direcciones. crear un enlace a un número determinado de páginas web accesibles para la lista de usuarios
Cerrar estas interfaces de usuario
.