Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

Creación de Componentes XPCOM

 

Imagen:traduccion-pendiente.png Esta página está traduciéndose a partir del artículo Creating_XPCOM Components, razón por la cual puede haber algunos errores sintácticos o partes sin traducir. Puedes colaborar continuando con la traducción

 

Prefacio

Quién debe leer este libro
Organización del tutorial
Continuando con los ejemplos
Convenciones
Agradecimientos

Un vistazo a XPCOM

La Solución XPCOM
Gecko
Componentes
Interfaces
Interfaces y encapsulamiento
La interfaz base nsISupports
Identificadores XPCOM
CID
Contract ID
Factorías
XPIDL y bibliotecas de tipos
Servicios de XPCOM
Tipos de XPCOM
Tipos de métodos
Cuenta de referencias
Códigos de estatus
Correlaciones variables
Códigos de errores comunes de XPCOM

Uso de componentes XPCOM

Ejemplos de componentes
Manejador de cookies
El componente WebBrowserFind
El componente WebLock
Uso de componentes en Mozilla
Localizar los componentes de Mozilla
Usar componentes XPCOM en tu CPP
XPConnect: Usar componentes XPCOM desde un Script

Interior del Componente

Creación de componentes en C++
Inicio de XPCOM
Registro de manifiestos de XPCOM
Métodos de registro en XPCOM
Autoregistro
El proceso de paro
Tres partes de una biblioteca de componentes XPCOM
XPCOM Glue
La biblioteca Glue
Clases de cadenas de XPCOM

Creación del código del componente

En lo que trabajaremos
Registro de componentes
El Programa regxpcom
Alternativas de registro
Vistazo del código fuente del módulo WebLock
Adentrándonos: inclusiones y constantes requeridas
Identificadores en XPCOM
Programando el proceso de registro
Métodos de Registro
Creación de una instancia del componente
webLock1.cpp

Usar utilidades de XPCOM para facilitar el proceso

Macros XPCOM
Macros de módulos XPCOM genéricos
Macros comunes de implementación
Macros de declaración
webLock2.cpp
Clases de cadenas en XPCOM
Implementando cadenas
nsEmbedString y nsEmbedCString
Punteros inteligentes

Iniciando WebLock

Llamado al arrancar
Registro para notificaciones
Obtener acceso al manejador de categorías
Suministro de acceso a WebLock
Crear la interfaz de programación WebLock
Definir la interfaz WebLock en XPIDL
Sintaxis XPIDL
Interfaces programables
Subclasificar nsISupports
Interfaz Web Locking
Implementación de WebLock
Macros de Declaración
Representación de Valores Devueltos en XPCOM
Generación del Código XPIDL
Obtención del Servicio WebLock Service desde un Cliente
Implementación de la Interfaz iWebLock
El Servicio Directorios
Modificar Rutas con nsIFile
Manipulación de Archivos con nsIFile
Usar nsILocalFile para leer información
Processing the White List Data
iWebLock método por método
Lock y Unlock
AddSite
RemoveSite
SetSites
GetNext
GetSites
HasMoreElements

Finishing the Component

Using Frozen Interfaces
Copying Interfaces Into Your Build Environment
Implementing the nsIContentPolicy Interface
Receiving Notifications
Implementing the nsIContentPolicy
Uniform Resource Locators
Checking the White List
Creating nsIURI Objects

Building the WebLock UI

User Interface Package List
Client Code Overview
XUL
The XUL Document
The Locking UI
Site Adding UI
weblock.xul
Overlaying New User Interface Into Mozilla
webLockOverlay.xul
Other Resources
weblock.css
Image Resources

Packaging WebLock

Component Installation Overview
Archiving Resources
The WebLock Installation Script
The WebLock Trigger Script
Distributing Your Component

Appendix A - Setting up the Gecko SDK

Downloading and Setting the SDK
Building a Microsoft Visual Cpp Project
Creating a New Project
Adding the Gecko SDK to the Project Settings
A Makefile for Unix

Appendix B - Resources

WebLock Resources
Gecko Resources
XPCOM Resources
General Development Resources

Copyright (c) 2003 by Doug Turner and Ian Oeschger. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.02 or later. Distribution of substantively modified versions of this document is prohibited without the explicit permission of the copyright holder. Distribution of the work or derivative of the work in any standard (paper) book form is prohibited unless prior permission is obtained from the copyright holder.

Etiquetas y colaboradores del documento

 Colaboradores en esta página: Maharba, fakewings, Mgjbot
 Última actualización por: Maharba,