diff options
Diffstat (limited to 'files/ja/mozilla/tech/xpcom/index.html')
-rw-r--r-- | files/ja/mozilla/tech/xpcom/index.html | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/files/ja/mozilla/tech/xpcom/index.html b/files/ja/mozilla/tech/xpcom/index.html new file mode 100644 index 0000000000..ceea8f01cb --- /dev/null +++ b/files/ja/mozilla/tech/xpcom/index.html @@ -0,0 +1,114 @@ +--- +title: XPCOM +slug: Mozilla/Tech/XPCOM +tags: + - Landing + - Mozilla + - XPCOM + - アドオン + - 拡張機能 +translation_of: Mozilla/Tech/XPCOM +--- +<p><strong>XPCOM</strong> は Microsoft COM と同じクロスプラットフォームのコンポーネントオブジェクトモデルです。これには複数の<a href="/ja/docs/XPCOM/Language_Bindings">言語バインディング</a>があり、XPCOM コンポーネントを C++ に加えて JavaScript、Java、Pythonで使用および実装することができます。XPCOM のインタフェースは <a href="/ja/docs/XPIDL">XPIDL</a> という IDL の方言で定義されています。</p> + +<div class="warning"> +<p><strong>XPCOM は Firefox 拡張機能ではもはや利用できません。代わりに <a href="/ja/docs/Mozilla/Add-ons/WebExtensions">WebExtensions</a> を使用してください。</strong></p> +</div> + +<p>XPCOM 自体は一連のコアコンポーネントとクラスを提供します。XPCOM コンポーネントの大部分はこのコアセットの一部ではなく、プラットフォームの他の部分 (例えば <a href="/ja/docs/Mozilla/Gecko">Gecko</a> や <a href="/ja/docs/Necko">Necko</a>) によって提供されます。アプリケーション、または拡張機能を使用することもできます。</p> + + + +<div class="row topicpage-table"> +<div class="section"> +<dl> + <dt class="landingPageList"><a href="/ja/docs/Accessing_the_Windows_Registry_Using_XPCOM">Accessing the Windows Registry Using XPCOM</a></dt> + <dd class="landingPageList"></dd> + <dt class="landingPageList"><a href="/ja/docs/Fun_With_XBL_and_XPConnect">Fun With XBL and XPConnect</a></dt> + <dd class="landingPageList">この文章では、XBL の応用である、XULウィジェットへのアクセスを可能にする簡単な XPCOMインターフェースについて述べます。 XBLのこのインターフェースを定義するという特徴は、自動補完を行う C++ オブジェクトへの XPConnectを介したインターフェースを定義するのに使用されます。 一度通常の XULテキストフィールドをこのインターフェースに結び付ければ、通常の JavaScript を用いて、オブジェクトの自動補完機能を呼び出すようになります。 この相互作用の基本的なモデルは次のとおりです:</dd> + <dt class="landingPageList"><a href="/ja/docs/Generating_GUIDs">Generating GUIDs</a></dt> + <dd class="landingPageList"><strong>GUID</strong> は、Mozilla プログラミングで、XPCOM <a href="/ja/docs/Interfaces">インタフェース</a> (このタイプの GUID は IID と呼ばれています) やコンポーネント (CID) 、<a href="/ja/docs/Extension">拡張機能</a>や<a href="/ja/docs/Themes">テーマ</a>を含むアドオンなどの実体のそれぞれの型を識別するために使われます。とはいえ、<a href="/ja/docs/Firefox_1.5">Firefox 1.5</a> からは、アドオンでは <code><a class="link-mailto" href="mailto:extensionname@organization.tld" rel="freelink">extensionname@organization.tld</a></code> 形式の ID で<a href="/ja/docs/Install_Manifests#id">識別することができます(また、そうするべきです)</a>。</dd> + <dt class="landingPageList"><a href="/ja/docs/Generic_factory">Generic factory</a></dt> + <dd class="landingPageList"><a href="ja/XPCOM">XPCOM</a> では、<strong>汎用ファクトリ</strong> は <code><a href="https://dxr.mozilla.org/mozilla-central/source/xpcom/glue/nsIGenericFactory.h" rel="custom">xpcom/glue/nsIGenericFactory.h</a></code> にある機能を利用して生成されたファクトリのことを指します。</dd> + <dt class="landingPageList"><a href="/ja/docs/Interfacing_with_the_XPCOM_cycle_collector">Interfacing with the XPCOM cycle collector</a></dt> + <dd class="landingPageList">これは Firefox 3 の XPCOM に導入されたサイクルコレクタの簡単な概要です。既存の C++ クラスを XPCOM サイクルコレクションに加えるための変更を順を追って説明します。cyclical-ownership リークに困っているクラスがあれば、このページが役立つでしょう。</dd> + <dt class="landingPageList"><a href="/ja/docs/Introduction_to_XPCOM_for_the_DOM">Introduction to XPCOM for the DOM</a></dt> + <dd class="landingPageList">Fabian Guisset <<a class="link-mailto" href="mailto:fguisset@softhome.net">fguisset@softhome.net</a>></dd> + <dt class="landingPageList"><a href="/ja/docs/XPCOM/Setting_HTTP_request_headers">Setting HTTP request headers</a></dt> + <dd class="landingPageList">HTTP は Web の中核を成す技術の一つです。実際のコンテンツに加え、HTTP ヘッダによって<a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html">いくつかの重要な情報</a>が HTTP リクエストとレスポンスの両方で渡されます。</dd> + <dt class="landingPageList"><a href="/ja/docs/Storage">Storage</a></dt> + <dd class="landingPageList"><strong>Storage</strong> は <a href="http://www.sqlite.org/">SQLite</a> データベース API です。信頼できる呼び出し元、つまり拡張機能と Firefox コンポーネントのみが利用できます。</dd> + <dt class="landingPageList"><a href="/ja/docs/XPCOM/The_Thread_Manager">The Thread Manager</a></dt> + <dd class="landingPageList"></dd> + <dt class="landingPageList"><a href="/ja/docs/Using_nsCOMPtr">Using nsCOMPtr</a></dt> + <dd class="landingPageList">このドキュメントは、<code>nsCOMPtr</code> について書かれたすべてを集めたものです。もしあなたが <code>nsCOMPtr</code> について疑問があり、このドキュメントでは分からないのであれば、 おそらくそれに答えられるドキュメントはないでしょう。<a class="external" href="news:mozilla.dev.tech.xpcom">XPCOM ニュースグループ</a>、または他のベテランの <code>nsCOMPtr</code> ユーザに尋ねる、あるいは実験して答えを見つける、などの別の手段で答えを得るしかありません。</dd> +</dl> + +<dl> +</dl> +</div> + +<div class="section"> +<dl> + <dt class="landingPageList"><a href="/ja/docs/Weak_reference">Weak reference</a></dt> + <dd class="landingPageList">In <a href="ja/XPCOM">XPCOM</a>, a <strong>weak reference</strong> is a special object that contains a pointer to an XPCOM object, but does<em>not</em> keep that object alive. If the referent object is destroyed before the weak reference, the pointer inside the weak reference is set to <code>nsnull</code>.</dd> + <dt class="landingPageList"><a href="/ja/docs/XPCOM/wrappedJSObject">wrappedJSObject</a></dt> + <dd class="landingPageList"><code>wrappedJSObject</code>は<a href="ja/XPConnect">XPConnect</a>ラッパで利用できることがあるプロパティです。利用できる場合、それはあなたに、ラッパによって隠蔽されたJavaScriptオブジェクトへのアクセスを可能にします。</dd> + <dt class="landingPageList"><a href="/ja/docs/XPCOM_ABI">XPCOM ABI</a></dt> + <dd class="landingPageList"><a href="ja/XPCOM">XPCOM</a> <abbr title="Application Binary Interface">ABI</abbr>は、XPCOMコンポーネントのバイナリインターフェースです。スクリプト言語(<a href="ja/JavaScript">JavaScript</a>など)によって書かれたXPCOMコンポーネントは、特に改変をしなくてもプラットフォーム(WindowsやOS Xなど)を越えて動作させられますが、コンパイルが必要な言語(C++など)で書かれたコンポーネントの場合、異なるプラットフォームで動かすためには再コンパイルが必要です。コンパイルされたXPCOMコンポーネントは多くの場合、「バイナリ」や「ネイティブ」などと呼ばれます。</dd> + <dt class="landingPageList"><a href="/ja/docs/Mozilla/Tech/XPCOM/Guide">XPCOM guide</a></dt> + <dd class="landingPageList">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.</dd> + <dt class="landingPageList"><a href="/ja/docs/XPCOM_ownership_guidelines">XPCOM ownership guidelines</a></dt> + <dd class="landingPageList">...自然なことです。もしあなたが一時的なオブジェクトを作ったのであれば、明らかにそれを破壊するのはあなたの責任です。それは確かに所有の徴候です。もしあなたがより長い生存期間を持つオブジェクトを作ったのであれば、あなたは所有権を失うまでそれを所有することになるでしょう。</dd> + <dt class="landingPageList"><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference">XPCOM reference</a></dt> + <dd class="landingPageList">This reference describes the interfaces and functions provided by the <a href="/en-US/docs/Mozilla/Tech/XPCOM">XPCOM</a> library. In addition, it details the various helper classes and functions, as well as the components, provided by the <a href="/en-US/docs/Mozilla/Tech/XPCOM/Glue">XPCOM glue</a> library. The contents herein are oriented primarily toward extension developers and people embedding XPCOM in other projects.</dd> + <dt class="landingPageList"><a href="/ja/docs/XPCOM/Language_Bindings">XPCOM 言語バインディング</a></dt> + <dd class="landingPageList"><strong>XPCOM 言語バインディング</strong>は、以下の目的のために特定の言語と <a href="/ja/XPCOM" rel="internal" title="ja/XPCOM">XPCOM</a> との橋渡しを行います。</dd> + <dt class="landingPageList"><a href="/ja/docs/xptcall_FAQ">xptcall FAQ</a></dt> + <dd class="landingPageList"><code>xptcall</code> は、低レベルの XPCOM メソッド呼び出しのための小さなライブラリです。プラットフォーム固有の C/C++ とアセンブラ言語のコードを使って実装されています。異なる言語間の呼び出しと異なるスレッドへのメソッド呼び出しを容易にするためのものです。 Mozillaをあらゆるプラットフォーム上で動作させるためには、このコードを移植する必要があります。</dd> +</dl> +</div> +</div> + + + + + +<div class="blockIndicator communitybox"> +<div class="column-container"> +<h2 id="XPCOMコミュニティに参加してください">XPCOMコミュニティに参加してください</h2> + +<div class="column-half"> +<div class="communitysubhead">あなたの好きな方法でディスカッションに参加してください</div> + +<ul class="communitymailinglist"> + <li><a href="https://lists.mozilla.org/listinfo/dev-tech-xpcom">メーリングリストとして</a></li> + <li><a href="http://groups.google.com/group/mozilla.dev.tech.xpcom">ニュースグループとして</a></li> + <li><a href="http://groups.google.com/group/mozilla.dev.tech.xpcom/feeds">フィードとして</a></li> +</ul> +</div> + +<div class="column-half"> +<ul class="communitycontact"> + <li><strong>IRC: </strong><a href="irc://irc.mozilla.org/developers">#developers</a> <span class="smaller">(<a href="https://wiki.mozilla.org/IRC">さらに詳しく</a>)</span></li> + <li><strong>Tools: </strong><a href="http://ted.mielczarek.org/code/mozilla/jscomponentwiz/">JavaScript Component Wizard</a>, <a href="http://www.mytools360.com-a.googlepages.com/home#XPComPro">Visual C++ Component Wizard</a>, <a href="http://www.yutools.com/wp/tools/yuxpcomwizard/?lang=en">Visual C++ Component Wizard for Visual Studio 2010</a>, <a href="https://addons.mozilla.org/en-US/firefox/addon/xpcomviewer/">XPCOMViewer addon: browse XPCOM interfaces easily</a></li> +</ul> +</div> +</div> +</div> + + + + + +<section id="Quick_Links"> +<ol> + <li><a href="http://www.ibm.com/developerworks/library/os-xpcomfirefox/">Tutorial from IBM DeveloperWorks</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Creating_Custom_Firefox_Extensions_with_the_Mozilla_Build_System">Binary components tutorial</a></li> + <li><a href="http://www.iosart.com/firefox/xpcom/">Linux and Windows how-to guide</a></li> + <li><a href="http://starkravingfinkle.org/blog/2006/10/mozilla-platform-xpcom-in-c/">Windows example blog post</a></li> + <li><a href="http://wanderingstan.com/2007-11-16/geekout_how_to_make_a_c_xpcom_component">Another Windows example</a></li> + <li><a href="http://rcrowley.org/2007/07/17/cross-platform-xpcom-a-howto.html">Mac OS X example</a></li> + <li><a href="/en-US/docs/Web/JavaScript" title="JavaScript (JS) is a lightweight interpreted or JIT-compiled programming language with first-class functions. While it is most well-known as the scripting language for Web pages, many non-browser environments also use it, such as Node.js, Apache CouchDB and Adobe Acrobat.">JavaScript</a></li> +</ol> +</section> |