В настоящее время вы работаете в автономном режиме; ожидается повторное подключение к Интернету

Как вызвать метод Run() сценариев управления в C++

ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.

Эта статья на английском языке: 229669
Аннотация
В этой статье показано, как с помощью элемента управления Microsoft сценарий для вызова функции или процедуры, определенные в JavaScript или VBScript.
Дополнительная информация
Элемент управления сценария имеет четыре метода. Одним из них является 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 -----------------------				
Ссылки
Сведения об элементе управления сценария можно найти на Узел сценариев.

Дополнительную информацию можно найти в следующих статьях базы знаний Майкрософт:
184977 ИСПРАВИТЬ: ScriptControl отчеты недопустимый язык VBScript в MFC

165967 PRB: Ошибка сценариев при ссылке на массив не вариант
Массив типа SafeArray Scriptcontrol выполнения

Внимание! Эта статья переведена автоматически

Свойства

Номер статьи: 229669 — последний просмотр: 07/20/2013 13:52:00 — редакция: 3.0

  • kbautomation kbhowto kbscript kbmt KB229669 KbMtru
Отзывы и предложения