引数が、[in,out] LONG* pVal 形式のメソッドを作成したい

[戻る]
環しずる 2009/04/17(金) 08:22:30
COMの命令を作成しています。
[in,out] または [out] の形式の引数を作成して
JScript と COM でやり取りしたいと思っています。

実際に試してみると、COM側で値を受け取ることができたのですが、
値を渡すことができませんでした。

コードは以下のようなカンジです。

HRESULT Test(LONG* pVal)
{
   LONG a = 3;
   *pVal = a;
   return S_OK;
}


[out, retval] では上手くいっているのでなぜダメなのかわかりません。

現在はWindowsXP の VisualStudio 2003 で試しております。
すみませんがご教授お願いします。

aetos 2009/04/17(金) 09:58:33
そもそも JScript に出力引数っていう機能はあったっけ?

subaru 2009/04/17(金) 13:11:09
JScriptでは無理かも?
VBScriptならCallステートメントでByRefになってくれるようです。
http://oshiete.nikkeibp.co.jp/qa2031063.html

環しずる 2009/04/18(土) 12:07:58
JScript はできなさそうな雰囲気ですね。
何か公式文章があればいいのですが、検索してもみつけられませんでした。

ITO 2009/04/18(土) 13:10:31
参考にどうぞ
http://msdn.microsoft.com/ja-jp/library/72bd815a(VS.80).aspx

aetos 2009/04/20(月) 11:10:52
テキトーなこと言ってすいません。
できるみたいですね。
http://msdn.microsoft.com/ja-jp/library/h16za89y.aspx

subaru 2009/04/20(月) 14:12:54
>aetosさん
ASP.NetでサーバースクリプトにJScriptを選択した場合や
JSCでコンパイルする場合は使えますが、
クライアントスクリプトやWSHからの利用では構文エラーでした。

あまり事情は知らないけど、バージョン7以降は
JScript.Net という位置づけのようです。
http://ja.wikipedia.org/wiki/JScript

aetos 2009/04/20(月) 14:26:00
ははぁ。
Firefox 等ではできないだろうと思っていましたが、MS 製の WSH でもダメですか。
ということは、やはり無理かもしれませんね。

環しずる 2009/04/23(木) 00:44:56
[[解決]]
LONG* 型はダメそうなので [in] IDispatch* pDispにして 
Array型でやりとりするようにします。

ありがとうございました。

古いスレッドには追加発言できません。