diff options
Diffstat (limited to 'files/ja/mozilla/tech/xpcom/language_bindings/components.results/index.html')
-rw-r--r-- | files/ja/mozilla/tech/xpcom/language_bindings/components.results/index.html | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/files/ja/mozilla/tech/xpcom/language_bindings/components.results/index.html b/files/ja/mozilla/tech/xpcom/language_bindings/components.results/index.html new file mode 100644 index 0000000000..129d147668 --- /dev/null +++ b/files/ja/mozilla/tech/xpcom/language_bindings/components.results/index.html @@ -0,0 +1,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 <code>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> |