現在オフラインです。再接続するためにインターネットの接続を待っています

C++ の Microsoft スクリプト コントロールの Run() メソッドを呼び出すには、方法

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:229669
概要
この資料は、Microsoft スクリプト コントロールを使用して、関数またはサブルーチンの JavaScript または VBScript で定義されているを呼び出す方法を示します。
詳細
スクリプト コントロールに 4 つの方法があります。それらの 1 つは、関数やサブルーチンを実行する Run() です。このメソッドを呼び出す前に、スクリプトの言語を指定、AllowUI を設定してスクリプト コントロールには、次のスクリプトを追加します。
//---------------------- Begin ---------------------------#include <stdio.h>#import "C:\winnt\system32\msscript.ocx"  // msscript.ocx using namespace MSScriptControl;int main(void){	HRESULT hr = CoInitialize(NULL);	IScriptControlPtr pScriptControl(__uuidof(ScriptControl));	// Create a VARIANT array of VARIANTs which hold BSTRs	LPSAFEARRAY psa;	SAFEARRAYBOUND rgsabound[]  = { 3, 0 }; // 3 elements, 0-based	int i;	psa = SafeArrayCreate(VT_VARIANT, 1, rgsabound);	if (!psa)	{		return E_OUTOFMEMORY;	}	VARIANT vFlavors[3];	for (i = 0; i < 3; i++)	{		VariantInit(&vFlavors[i]);		V_VT(&vFlavors[i]) = VT_BSTR;	}	V_BSTR(&vFlavors[0]) = SysAllocString(OLESTR("Vanilla"));	V_BSTR(&vFlavors[1]) = SysAllocString(OLESTR("Chocolate"));	V_BSTR(&vFlavors[2]) = SysAllocString(OLESTR("Espresso Chip"));	long lZero = 0;	long lOne = 1;	long lTwo = 2;	// Put Elements to the SafeArray:	hr = SafeArrayPutElement(psa, &lZero,&vFlavors[0]);	hr = SafeArrayPutElement(psa, &lOne,&vFlavors[1]);	hr = SafeArrayPutElement(psa, &lTwo,&vFlavors[2]);	// Free Elements from the SafeArray:	for(i=0;i<3;i++)	{		SysFreeString(vFlavors[i].bstrVal);	}	// Set up Script control properties	pScriptControl->Language = "JScript";	pScriptControl->AllowUI = TRUE;	pScriptControl->AddCode(		"function MyStringFunction(Argu1,Argu2,Argu3)\ 		{  return \"hi there\" ;}" );	//  Call MyStringFunction with the two args:	_variant_t outpar = pScriptControl->Run("MyStringFunction", &psa);		// Convert VARIANT to C string:	_bstr_t bstrReturn = (_bstr_t)outpar;	char *pResult = (char *)bstrReturn;	// Print the result out:	printf("func=%s\n",pResult);		//  Clean up:	SafeArrayDestroy(psa);	CoUninitialize();	return(0);}// --------------- End -----------------------				
関連情報
スクリプト コントロールに情報を入手できますが MSDN サイト スクリプト.

その他の情報次の記事で、マイクロソフト サポート技術情報を参照してください。
184977 FIX ScriptControl レポート無効な言語では、MFC プログラミング用

165967 非バリアント型の配列を参照するときに PRB: スクリプト エラーが発生します。
SafeArray Scriptcontrol の実行

警告: この記事は自動翻訳されています

プロパティ

文書番号:229669 - 最終更新日: 07/20/2013 10:56:00 - リビジョン: 4.0

  • kbautomation kbhowto kbscript kbmt KB229669 KbMtja
フィードバック
1&t=">