cancel
Showing results for 
Search instead for 
Did you mean: 

Error calling COM-component Sapgui.ScriptingCtrl.1 (OpenConnection)

Former Member
0 Kudos

Hi, All !

#include "stdafx.h"
#include "wtypes.h"
#include "atlbase.h"

int _tmain(int argc, _TCHAR* argv[])
{
	IDispatch *qqq = NULL;
	HRESULT hr;
	LPCOLESTR lpszProgID = OLESTR("Sapgui.ScriptingCtrl.1");
	CLSID lpclsid;
	DISPID dispid;
	OLECHAR FAR* szMember0 = OLESTR("OpenConnectionByConnectionString");
	EXCEPINFO pExcepInfo;
	unsigned int puArgErr = 0;
	DISPPARAMS dispparams;
	VARIANT dispRes;
	VARIANTARG var[3];
	BSTR cmd0 = SysAllocString(L"/H/192.168.1.1/S/3211");


	hr = ::CoInitializeEx(0, COINIT_MULTITHREADED);
	hr = CLSIDFromProgID(lpszProgID, &lpclsid);
	hr = ::CoCreateInstance(lpclsid, 0, CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER, IID_IDispatch, (LPVOID *)&qqq);
	hr = qqq->GetIDsOfNames(IID_NULL, &szMember0, 1, LOCALE_SYSTEM_DEFAULT, &dispid);
	var[0].vt = VT_BSTR;
	var[0].bstrVal = cmd0;
	var[1].vt = VT_BOOL;
	var[1].boolVal = 0;
	var[2].vt = VT_BOOL;
	var[2].boolVal = 0;
	dispparams.rgvarg = var;
	dispparams.cArgs=3;
	dispparams.rgdispidNamedArgs=NULL;
	dispparams.cNamedArgs=0;
	hr = qqq->Invoke(dispid, IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_METHOD | DISPATCH_PROPERTYGET , &dispparams, &dispRes, &pExcepInfo, &puArgErr);
	if(qqq)	{	qqq->Release();	qqq = NULL;	}
	::CoUninitialize();
	return 0;
}

Calling of qqq->Invoke displayed this dialog box:

Error parsing sapgui commandline

'0'

SAPGUI USAGE

Syntax:...................................

and returned hr == 0x80020009 Error.....

OLE-COM Viewer say next info:

[id(0x00008096)]

GuiConnection* OpenConnectionByConnectionString(

BSTR ConnectString,

[optional] VARIANT Sync,

[optional] VARIANT Raise);

In what my mistake?

Regards, Victor.

Edited by: Victor Vyasovtsev on Mar 19, 2008 11:49 AM

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Closed !!!

	var[2].vt = VT_BSTR;
	var[2].bstrVal = cmd0;
	var[1].vt = VT_BOOL;
	var[1].boolVal = 0;
	var[0].vt = VT_BOOL;
	var[0].boolVal = 0;