--- title: XPCOM slug: Mozilla/Tech/XPCOM tags: - Landing - Mozilla - XPCOM - アドオン - 拡張機能 translation_of: Mozilla/Tech/XPCOM ---

XPCOM は Microsoft COM と同じクロスプラットフォームのコンポーネントオブジェクトモデルです。これには複数の言語バインディングがあり、XPCOM コンポーネントを C++ に加えて JavaScript、Java、Pythonで使用および実装することができます。XPCOM のインタフェースは XPIDL という IDL の方言で定義されています。

XPCOM は Firefox 拡張機能ではもはや利用できません。代わりに WebExtensions を使用してください。

XPCOM 自体は一連のコアコンポーネントとクラスを提供します。XPCOM コンポーネントの大部分はこのコアセットの一部ではなく、プラットフォームの他の部分 (例えば GeckoNecko) によって提供されます。アプリケーション、または拡張機能を使用することもできます。

Accessing the Windows Registry Using XPCOM
Fun With XBL and XPConnect
この文章では、XBL の応用である、XULウィジェットへのアクセスを可能にする簡単な XPCOMインターフェースについて述べます。 XBLのこのインターフェースを定義するという特徴は、自動補完を行う C++ オブジェクトへの XPConnectを介したインターフェースを定義するのに使用されます。 一度通常の XULテキストフィールドをこのインターフェースに結び付ければ、通常の JavaScript を用いて、オブジェクトの自動補完機能を呼び出すようになります。 この相互作用の基本的なモデルは次のとおりです:
Generating GUIDs
GUID は、Mozilla プログラミングで、XPCOM インタフェース (このタイプの GUID は IID と呼ばれています) やコンポーネント (CID) 、拡張機能テーマを含むアドオンなどの実体のそれぞれの型を識別するために使われます。とはいえ、Firefox 1.5 からは、アドオンでは extensionname@organization.tld 形式の ID で識別することができます(また、そうするべきです)
Generic factory
XPCOM では、汎用ファクトリxpcom/glue/nsIGenericFactory.h にある機能を利用して生成されたファクトリのことを指します。
Interfacing with the XPCOM cycle collector
これは Firefox 3 の XPCOM に導入されたサイクルコレクタの簡単な概要です。既存の C++ クラスを XPCOM サイクルコレクションに加えるための変更を順を追って説明します。cyclical-ownership リークに困っているクラスがあれば、このページが役立つでしょう。
Introduction to XPCOM for the DOM
Fabian Guisset <fguisset@softhome.net>
Setting HTTP request headers
HTTP は Web の中核を成す技術の一つです。実際のコンテンツに加え、HTTP ヘッダによっていくつかの重要な情報が HTTP リクエストとレスポンスの両方で渡されます。
Storage
Storage は SQLite データベース API です。信頼できる呼び出し元、つまり拡張機能と Firefox コンポーネントのみが利用できます。
The Thread Manager
Using nsCOMPtr
このドキュメントは、nsCOMPtr について書かれたすべてを集めたものです。もしあなたが nsCOMPtr について疑問があり、このドキュメントでは分からないのであれば、 おそらくそれに答えられるドキュメントはないでしょう。XPCOM ニュースグループ、または他のベテランの nsCOMPtr ユーザに尋ねる、あるいは実験して答えを見つける、などの別の手段で答えを得るしかありません。
Weak reference
In XPCOM, a weak reference is a special object that contains a pointer to an XPCOM object, but doesnot keep that object alive. If the referent object is destroyed before the weak reference, the pointer inside the weak reference is set to nsnull.
wrappedJSObject
wrappedJSObjectXPConnectラッパで利用できることがあるプロパティです。利用できる場合、それはあなたに、ラッパによって隠蔽されたJavaScriptオブジェクトへのアクセスを可能にします。
XPCOM ABI
XPCOM ABIは、XPCOMコンポーネントのバイナリインターフェースです。スクリプト言語(JavaScriptなど)によって書かれたXPCOMコンポーネントは、特に改変をしなくてもプラットフォーム(WindowsやOS Xなど)を越えて動作させられますが、コンパイルが必要な言語(C++など)で書かれたコンポーネントの場合、異なるプラットフォームで動かすためには再コンパイルが必要です。コンパイルされたXPCOMコンポーネントは多くの場合、「バイナリ」や「ネイティブ」などと呼ばれます。
XPCOM guide
These articles provide tutorials and usage documentation for XPCOM, including how to use it in your own projects and how to build XPCOM components for your Firefox add-ons and the like.
XPCOM ownership guidelines
...自然なことです。もしあなたが一時的なオブジェクトを作ったのであれば、明らかにそれを破壊するのはあなたの責任です。それは確かに所有の徴候です。もしあなたがより長い生存期間を持つオブジェクトを作ったのであれば、あなたは所有権を失うまでそれを所有することになるでしょう。
XPCOM reference
This reference describes the interfaces and functions provided by the XPCOM library. In addition, it details the various helper classes and functions, as well as the components, provided by the XPCOM glue library. The contents herein are oriented primarily toward extension developers and people embedding XPCOM in other projects.
XPCOM 言語バインディング
XPCOM 言語バインディングは、以下の目的のために特定の言語と XPCOM との橋渡しを行います。
xptcall FAQ
xptcall は、低レベルの XPCOM メソッド呼び出しのための小さなライブラリです。プラットフォーム固有の C/C++ とアセンブラ言語のコードを使って実装されています。異なる言語間の呼び出しと異なるスレッドへのメソッド呼び出しを容易にするためのものです。 Mozillaをあらゆるプラットフォーム上で動作させるためには、このコードを移植する必要があります。

XPCOMコミュニティに参加してください

あなたの好きな方法でディスカッションに参加してください