aboutsummaryrefslogtreecommitdiff
path: root/files/ja/mozilla/tech/xpcom/language_bindings/components.results/index.html
blob: 129d147668e2ed9ea80046bd533258e6c74c9570 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
---
title: Components.results
slug: Mozilla/Tech/XPCOM/Language_Bindings/Components.results
tags:
  - 'XPCOM:Language Bindings'
  - XPConnect
translation_of: Mozilla/Tech/XPCOM/Language_Bindings/Components.results
---
<p>
</p><p><code>Components.results</code> は、<code><a href="https://dxr.mozilla.org/mozilla-central/source/js/src/xpconnect/src/xpc.msg" rel="custom">js/src/xpconnect/src/xpc.msg</a></code> にあるマクロの最初のパラメータとしてリストされた名前のプロパティを持つ、読み出し専用オブジェクトです。各オブジェクトの値はそのコンスタントの値に対応しています。
</p>
<h2 id="はじめに"> はじめに </h2>
<p><code>Components.results</code> は、よく知られた XPCOM の結果コードの名前をプロパティに持つオブジェクトで、それぞれの値は対応する結果コードに対応しています。このオブジェクトのプロパティは、未知の nsresult 変数をテストするのに利用したり、失敗を示すために「投げ」たりできます。
</p>
<pre class="eval">  if(something_unexpected_happened)
     throw Components.results.NS_ERROR_UNEXPECTED;
</pre>
<p><code>Components.results</code> オブジェクトのプロパティは <code><a href="ja/Core_JavaScript_1.5_Reference/Statements/for...in">for...in</a></code> ループを使って列挙できます。
</p>
<h2 id="使い方"> 使い方 </h2>
<h3 id="nsISupports_の実装"> <code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsISupports" title="">nsISupports</a></code> の実装 </h3>
<p>The standard <code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsISupports" title="">nsISupports</a></code> is usually implemented in JavaScript by using <code>Components.results</code> to get a failure return value if <code> does not implement the given interface. Note the common use of an abbreviation for &lt;code&gt;Components.results</code>, <code>Cr</code>:
</p>
<pre class="eval">const Ci = Components.interfaces, Cr = Components.results;

function Class()
{
  /* ... */
}
Class.prototype =
{
  /* ... */
  QueryInterface: function(id)
  {
    if (id.equals(Ci.IMyInterface))
      return this;
    throw Cr.NS_ERROR_NO_INTERFACE;
  }
};
</pre>