Créer des composants XPCOM

Cette traduction est incomplète. Aidez à traduire cet article depuis l'anglais.

Ce guide a pour but de vous initier à Gecko, et de vous permettre de créer des composants XPCOM pour les applications Gecko. Bien que le principal objectif soit de vous permettre d'inclure du code C++ dans des composants utilisables dans Gecko, nous espérons pouvoir vous présenter tous les outils, techniques, et technologies qui constituent XPCOM. En conséquence, ce livre est agencé de telle sorte que vous puissiez suivre et créer vos propres composants ou en apprendre davantage sur les différents sujets XPCOM individuellement, comme un ouvrage de référence. Par exemple, l'introduction inclue une analyse des composants, et le premier chapitre - dans lequel vous compilerez le code de base et vous l'enregistrerez avec Mozilla - explique la relation entre les composants et les modules, les interfaces XPCOM, et le processus d'enregistrement de manière générale.

Remarque: De manière générale, essayez d'éviter de créer des composants XPCOM. Les add-ons devraient utiliser le nouveau Add-on SDK autant que possible ; cependant, il est probable que dans certains cas cela soit inévitable.

Remarque : Cet article décrit une méthode qui utilise xpidl mais vous devriez plutôt utiliser webidl.

Preface

Pour qui est ce tutoriel
Organisation du tutoriel
En Pratique
Conventions
Remerciements

Un aperçu de XPCOM

Solutions XPCOM
Gecko
Composants
Interfaces
Interfaces et Encapsulation
L'interface de base nsISupports
XPCOM Identifiers
CID
Contract ID
Factories
XPIDL et bibliothèques de types
XPCOM Services
XPCOM Types
Method Types
Reference Counting
Status Codes
Variable Mappings
Codes d'erreur XPCOM

Utilisation des composants XPCOM

Exemples de composants
gestionnaire de cookies
WebBrowserFind
WebLock
Utilisation de composant dans Mozilla
Trouver des composants Mozilla
Utilisation de composants XPCOM dans votre Cpp
XPConnect: Utilisation de XPCOM avec un Script

Composants Internes

Creation de composants dans  Cpp
XPCOM Initialization
XPCOM Registry Manifests
Registration Methods in XPCOM
Autoregistration
The Shutdown Process
Three Parts of a XPCOM Component Library
XPCOM Glue
The Glue Library
XPCOM String Classes

Creating the Component Code

What We'll Be Working On
Component Registration
The regxpcom Program
Registration Alternatives
Overview of the WebLock Module Source
Digging In: Required Includes and Constants
Identifiers in XPCOM
Coding for the Registration Process
The Registration Methods
Creating an Instance of Your Component
webLock1.cpp

Using XPCOM Utilities to Make Things Easier

XPCOM Macros
Generic XPCOM Module Macros
Common Implementation Macros
Declaration Macros
webLock2.cpp
String Classes in XPCOM
Using Strings
nsEmbedString and nsEmbedCString
Smart Pointers

Starting WebLock

Getting Called at Startup
Registering for Notifications
Getting Access to the Category Manager
Providing Access to WebLock
Creating the WebLock Programming Interface
Defining the WebLock Interface in XPIDL
The XPIDL Syntax
Scriptable Interfaces
Subclassing nsISupports
The Web Locking Interface
Implementing WebLock
Declaration Macros
Representing Return Values in XPCOM
XPIDL Code Generation
Getting the WebLock Service from a Client
Implementing the iWebLock Interface
The Directory Service
Modifying Paths with nsIFile
Manipulating Files with nsIFile
Using nsILocalFile for Reading Data
Processing the White List Data
iWebLock Method By Method
Lock and 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
Building a Windows Project
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.

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : jmh, arkorgs
 Dernière mise à jour par : jmh,