|
question:
In my application. I host the browser Activex control and i wanna instead default context menu with
custom menu when user right-click a img.
I override the ShowContextMenu function, in this function, i wanna get the href url before IMG tag like->
<a href="URL"><IMG src="..."></IMG></a>
I had Queried much Interface by ShowContextMenu's param pdispReserved, but none of them can get the url.
how can i do? thx.
aaaaaaaaaaaaaaaaaaabbbbbbbbbbccccccccccccccc
|
|
|
|
|
Hi,
I'm developing a Web Service Client that invokes a method that require a parameter defined in a complexType. I have only a wsdl where this type is defined. This client must be written in C++ (using Visual Studio 6.0). I'm developing a test in JScript, but it returns a error "SoapMapper:Saving SoapMapper Param_Ent_Cons_Saldo_MT failed no such interface..."
My code in ASP:
<br />
var obj1 = new ActiveXObject ("MSSOAP.SoapClient30");<br />
obj1.ClientProperty("ServerHTTPRequest") = true;<br />
obj1.MSSoapInit(caminho,"Cons_Saldo_Consignado_MIService","Cons_Saldo_Consignado_MIPort");<br />
var retorno = bj1.Cons_Saldo_Consignado_MI(parametros);<br />
The definition of the type in WSDL:
<br />
<xsd:complexType name="Param_Ent_Cons_Saldo_DT"><br />
<xsd:sequence><br />
<xsd:element name="Param_Entrada"><br />
<xsd:annotation><br />
<xsd:appinfo source="http://sap.com/xi/TextID"<br />
>b5593d80435411db8f4acd980a011ad5</xsd:appinfo><br />
</xsd:annotation><br />
<xsd:complexType><br />
<xsd:sequence><br />
<xsd:element name="BUKRS"><br />
<xsd:annotation><br />
<xsd:appinfo source="http://sap.com/xi/TextID"<br />
>b5593d81435411dbc619cd980a011ad5</xsd:appinfo><br />
</xsd:annotation><br />
<xsd:simpleType><br />
<xsd:restriction base="xsd:string"><br />
<xsd:maxLength value="4"/><br />
</xsd:restriction><br />
</xsd:simpleType><br />
</xsd:element><br />
<xsd:element name="PERNR"><br />
<xsd:annotation><br />
<xsd:appinfo source="http://sap.com/xi/TextID"<br />
>b5593d82435411dbc803cd980a011ad5</xsd:appinfo><br />
</xsd:annotation><br />
<xsd:simpleType><br />
<xsd:restriction base="xsd:string"><br />
<xsd:maxLength value="8"/><br />
</xsd:restriction><br />
</xsd:simpleType><br />
</xsd:element><br />
<xsd:element name="EMPORI"><br />
<xsd:annotation><br />
<xsd:appinfo source="http://sap.com/xi/TextID"<br />
>b5593d83435411db89aacd980a011ad5</xsd:appinfo><br />
</xsd:annotation><br />
<xsd:simpleType><br />
<xsd:restriction base="xsd:string"><br />
<xsd:maxLength value="6"/><br />
</xsd:restriction><br />
</xsd:simpleType><br />
</xsd:element><br />
<xsd:element name="VALBEN" minOccurs="0"><br />
<xsd:annotation><br />
<xsd:appinfo source="http://sap.com/xi/TextID"<br />
>b5593d84435411dbc680cd980a011ad5</xsd:appinfo><br />
</xsd:annotation><br />
<xsd:simpleType><br />
<xsd:restriction base="xsd:decimal"><br />
<xsd:totalDigits value="15"/><br />
<xsd:fractionDigits value="2"/><br />
</xsd:restriction><br />
</xsd:simpleType><br />
</xsd:element><br />
<xsd:element name="TIPBEN" minOccurs="0"><br />
<xsd:annotation><br />
<xsd:appinfo source="http://sap.com/xi/TextID"<br />
>b5593d85435411dbb07ecd980a011ad5</xsd:appinfo><br />
</xsd:annotation><br />
<xsd:simpleType><br />
<xsd:restriction base="xsd:string"><br />
<xsd:maxLength value="6"/><br />
</xsd:restriction><br />
</xsd:simpleType><br />
</xsd:element><br />
<xsd:element name="SALDIS" minOccurs="0"><br />
<xsd:annotation><br />
<xsd:appinfo source="http://sap.com/xi/TextID"<br />
>b5593d86435411db8d2bcd980a011ad5</xsd:appinfo><br />
</xsd:annotation><br />
<xsd:simpleType><br />
<xsd:restriction base="xsd:decimal"><br />
<xsd:totalDigits value="15"/><br />
<xsd:fractionDigits value="2"/><br />
</xsd:restriction><br />
</xsd:simpleType><br />
</xsd:element><br />
<xsd:element name="VALUTI" minOccurs="0"><br />
<xsd:annotation><br />
<xsd:appinfo source="http://sap.com/xi/TextID"<br />
>b5593d87435411db80cfcd980a011ad5</xsd:appinfo><br />
</xsd:annotation><br />
<xsd:simpleType><br />
<xsd:restriction base="xsd:decimal"><br />
<xsd:totalDigits value="15"/><br />
<xsd:fractionDigits value="2"/><br />
</xsd:restriction><br />
</xsd:simpleType><br />
</xsd:element><br />
<xsd:element name="SALSUF" minOccurs="0"><br />
<xsd:annotation><br />
<xsd:appinfo source="http://sap.com/xi/TextID"<br />
>c6303f60481711db8f71dd6f0a011ad5</xsd:appinfo><br />
</xsd:annotation><br />
<xsd:simpleType><br />
<xsd:restriction base="xsd:string"><br />
<xsd:maxLength value="1"/><br />
</xsd:restriction><br />
</xsd:simpleType><br />
</xsd:element><br />
<xsd:element name="SUCESSO" minOccurs="0"><br />
<xsd:annotation><br />
<xsd:appinfo source="http://sap.com/xi/TextID"<br />
>35265b2044e411dbb07bffe20a011ad5</xsd:appinfo><br />
</xsd:annotation><br />
<xsd:simpleType><br />
<xsd:restriction base="xsd:string"><br />
<xsd:maxLength value="1"/><br />
</xsd:restriction><br />
</xsd:simpleType><br />
</xsd:element><br />
<xsd:element name="MENSAG" minOccurs="0"><br />
<xsd:annotation><br />
<xsd:appinfo source="http://sap.com/xi/TextID"<br />
>b5593d88435411dbadfacd980a011ad5</xsd:appinfo><br />
</xsd:annotation><br />
<xsd:simpleType><br />
<xsd:restriction base="xsd:string"><br />
<xsd:minLength value="73"/><br />
</xsd:restriction><br />
</xsd:simpleType><br />
</xsd:element><br />
<xsd:element name="UNAME" minOccurs="0"><br />
<xsd:annotation><br />
<xsd:appinfo source="http://sap.com/xi/TextID"<br />
>b5593d89435411dbc3b4cd980a011ad5</xsd:appinfo><br />
</xsd:annotation><br />
<xsd:simpleType><br />
<xsd:restriction base="xsd:string"><br />
<xsd:minLength value="12"/><br />
</xsd:restriction><br />
</xsd:simpleType><br />
</xsd:element><br />
<xsd:element name="SENHA" minOccurs="0"><br />
<xsd:annotation><br />
<xsd:appinfo source="http://sap.com/xi/TextID"<br />
>b5593d8a435411db8db9cd980a011ad5</xsd:appinfo><br />
</xsd:annotation><br />
<xsd:simpleType><br />
<xsd:restriction base="xsd:string"><br />
<xsd:minLength value="12"/><br />
</xsd:restriction><br />
</xsd:simpleType><br />
</xsd:element><br />
</xsd:sequence><br />
</xsd:complexType><br />
</xsd:element><br />
</xsd:sequence><br />
</xsd:complexType><br />
Anyone knows how pass this type in method call?
Thanks,
Guilherme Pires
|
|
|
|
|
Dear All,
I am doing a COM EXE program using ATL.
I have developed COM EXE. and now i am creating a client for that COM EXE, I getting HRESULT value as FAILED.
this is my code ....
/*****************************
hr=CoCreateInstance(CLSID_Product,NULL,CLSCTX_INPROC_SERVER,IID_IProduct,(void**)&pInface);
/******************
What it could be ? . I dont know how to do further.
Kindly, Can you help me ?.
|
|
|
|
|
This is not full code , ofcourse. Can you show it.
Just making sure, have you used, ::Coinitialize(NULL), before calling any COM function.
|
|
|
|
|
yes I used ....
hr=CoInitialize(NULL);
IProduct *pInface;
hr=CoCreateInstance(CLSID_Product,NULL,CLSCTX_INPROC_SERVER,IID_IProduct, (void**)&pInface);
if(SUCCEEDED(hr))
{
printf("Success COM inside");
pInface->Display(Str,RetStr);
}
CoUninitialize();
|
|
|
|
|
Hello Sakthiu,
Aside from the fact that the third parameter to CoCreateInstance() is CLSCTX_INPROC_SERVER whareas your COM server is an EXE Server (the parameter value should be CLSCTX_LOCAL_SERVER), there are also many other possibilities (e.g. COM server not registered, proxy/client DLL not registered, etc).
It would also help tremendously if you let us know what the return value to CoCreateInstance() is (i.e. the value of "hr").
- Bio.
|
|
|
|
|
I manually call an application that normally gets a file from
drag and drop and displays some information about it.
Now i'm able to call the application, but
how can I specifiy the dragged file by hand?
All I know is to implemet an IdataObject,
witch contains a STGMEDIUM, and a FORMATETC.
I know that the application witch recieves the file,
get's the information from the hGlobal member of the
stgmedium struct.
Can anybody help me with this problem?
If you want I can post my sourcecode, too.
|
|
|
|
|
HI
Guys in my application in crystal reports, the following exception arises some times :
System.Web System.Runtime.InteropServices.COMException (0x80004005): The process cannot access the file because it is being used by another process.
at
CrystalDecisions.ReportAppServer.Controllers.ReportSourceClass.Export(Export
Options pExportOptions, RequestContext pRequestContext)
at
CrystalDecisions.ReportSource.EromReportSourceBase.ExportToStream(ExportRequ
estContext reqContext)
at
CrystalDecisions.CrystalReports.Engine.FormatEngine.ExportToStream(ExportReq
uestContext reqContext)
at CrystalDecisions.CrystalReports.Engine.ReportDocument.y(ExportOptions
1)
at
CrystalDecisions.CrystalReports.Engine.ReportDocument.ExportToStream(ExportF
ormatType formatType)
Can any one let me know the solution for this exception , plzzzzzz ASAP , thankx in advance.
|
|
|
|
|
Hi,
I developed an out-of-proc (exe) Server which has both 32 and 64 bit versions.
I developed a client at 32 bit. But when I try to run that client on 64 bit, CoCreateInstance fails giving Class-Not-Registered. For WOW64 bit, I passed CLSCTX option as CLSCTX_ACTIVATE_64_BIT_SERVER. Still the CoCreateInstance failed.
1. How can I call 64 bit exe server from 32 bit client? MSDN says this can be done, but I am not able to do this.
2. If I want to support WOW64 from the server side, what changes do I need to do in the server side? Do I have to install both 32 and 64 bit version exe in the 64 bit OS to support WOW64? Do I need to make seperate regitry entries?
Many thanks in Advance for the help...
|
|
|
|
|
Hey guys
My situation:
I started playing around with the excel object library in c# and became a bit confused when an error occured while trying to set the value of a specific range.
First I wanted to use a 2-dimensional array to fill the sheet with data in one step. But I had to break it down to more little parts (inserting row for row) in order to track down the source of this strange error.
When inserting row for row, i noticed some of them being inserted well and others were not.
The difference between the rows which were inserted without any error and those who weren't is the length of some strings which consist of more than 911 characters.
I already found out that inserting the single value into the cell works fine but as soon as i use an array to fill the sheet, it does not work anymore.
Now (and finally ) my question:
Is there any way to fill a excel sheet with a 2-dimensional array which contains strings longer than 911 chars with the set_Value method of a range object?
And if not - do you know any kind of workaround except for truncating the string to 911 chars?
Google wasn't very helpful (or i did not search for the right subject) and i just found some fellows having the same problem without any solution...
Thanks in advance,
mik
//edit:
I spent some more time in searching for a solution and found the following knowledge base article:
You may receive a "Run-time error 1004" error message when you programmatically set a large array string to a range in Excel 2003
I really don't want to believe that this actually is THE workaround - i even think its not a workaround at all. I would be glad to see a real workaround for this problem...
//second edit:
After googling like i never did before i found a google group post where a nice guy describes how to read a adodb recordset and fill the excel sheet with its data by using a QueryTable object. You also can use this to parse (tab-seperated) textfiles.
Here's the link - just check out the MSDN documentation for the different classes if you dont understand something (though QueryTable Class is barely documented...) -
Fill a Excelsheet with a QueryTable to work around the 911 character limitation
-- modified at 10:44 Monday 9th October, 2006
|
|
|
|
|
I'd activex control, having certain set of functions. Recently, I've added a new function to it, which i intend to exposed,
BEGIN_DISPATCH_MAP(CMyCtrl, COleControl)
DISP_FUNCTION(CMyCtrl, "fun1", fun1, VT_EMPTY, VTS_I4 VTS_I4)
DISP_FUNCTION(CMyCtrl, "newfunction", newfunction, VT_EMPTY, VTS_VARIANT)
END_DISPATCH_MAP()
I use this control at client code, using COledispatchDriver.
But problem is, now call to new function throws exception. i.e. it doesn't recognizes new function. COledispatchDriver is not able to invoke newly added function. I've registed changed activex.
Does anybody faced similar problem?
|
|
|
|
|
You have to re-import the ActiveX. Otherwise the classwizard generated wrapper class for your interface won't contain the new interface function.
By registering the component you simply add information to the registry, e.g. where the typelib for the component can be found. The registration procedure does not magically change any code in your client.
Of course you can "manually" add the new interface function to your client's interface wrapper class without re-importing the component. Have a look at how "funl" is handled and you should be able to figure it out. Just be careful to get the dispid and the argument list correct.
Hope this helps
--
Roger
"It's supposed to be hard, otherwise anybody could do it!" - selfquote
"No one remembers a coward!" - Jan Elfström 1998 "...but everyone remembers an idiot!" - my lawyer 2005 when heard of Jan's saying above
|
|
|
|
|
Hi Roger,
I'm not importing ocx, as you mentioned.
I'm using Coledispatchdriver class instead. By some efforts, I found that, the problem occurs on m/c , having this activex installed previously(old version, without new function). In that case, after registration, new value named InprocServer32 (its not key), is stored under key InprocServer32 . Which contains some garbage.
If I delete that value, it works fine .
Still cant figure out problem.
thanks for your concern.
|
|
|
|
|
Sorry Prasad, I cannot figure that one out. At least not right now.
But I must say I don't really get your problem...
1. You have an older version of the ActiveX without the new function that works fine.
2. When you register the newer version it adds the InprocServer32 value below the InprocServer32 key and fills it with "garbage".
3. If you delete the InprocServer32 value, the new version works fine.
Is this correctly understood?
What happens if you unregister the previous version before registering the new?
Is the "garbage" a MULTI_SZ similar to the same value for the "Microsoft ProgressBar Control, version 6.0" (CLSID = {35053A22-8589-11D1-B16A-00C0F0283628})?
What happens if you change the contents of the InprocServer32 value instead of deleting it? Error messages when trying to create the server?
--
Roger
"It's supposed to be hard, otherwise anybody could do it!" - selfquote
"No one remembers a coward!" - Jan Elfström 1998 "...but everyone remembers an idiot!" - my lawyer 2005 when heard of Jan's saying above
|
|
|
|
|
Roger Stoltz wrote: 1. You have an older version of the ActiveX without the new function that works fine.
2. When you register the newer version it adds the InprocServer32 value below the InprocServer32 key and fills it with "garbage".
3. If you delete the InprocServer32 value, the new version works fine.
Is this correctly understood?
exactly.
Roger Stoltz wrote: What happens if you unregister the previous version before registering the new?
No success.
Roger Stoltz wrote: Is the "garbage" a MULTI_SZ similar to the same value for the "Microsoft ProgressBar Control, version 6.0" (CLSID = {35053A22-8589-11D1-B16A-00C0F0283628})?
yes, its similar to it.
Roger Stoltz wrote: What happens if you change the contents of the InprocServer32 value instead of deleting it?
Haven't tried it. But , as mentioned earlier, deleting it was the solution( obviosly, cant ask user to do that , i.e. to play registry).
I tried to access added function from activex control test container. I can see it in list. But again show no effect on pressing invoke. Same thing happen when tried to access new function in vb code. Intellisense shows added function. But in run , error comes, telling 'object doesn't support this property/method'.
thanks.
|
|
|
|
|
The InprocServer32 key's default value is always the path to the library containing the server, but I haven't seen the value with the same name before.
So: I've google'd around trying to get some information about this mysterious InprocServer32 value.
It turns out that the most usual usage of this value is by installing the server with InstallShield and provides some kind of support for update service.
I have to dig deeper to get more out of it, but perhaps I don't have to...
Now to the obvious question: are you at some point using and/or registering InstallShield, or any external installer...? Or am I barking up the wrong tree?
--
Roger
"It's supposed to be hard, otherwise anybody could do it!" - selfquote
"No one remembers a coward!" - Jan Elfström 1998 "...but everyone remembers an idiot!" - my lawyer 2005 when heard of Jan's saying above
|
|
|
|
|
Roger Stoltz wrote: are you at some point using and/or registering InstallShield, or any external installer...?
No I'm just using regsvr32 commandline.
|
|
|
|
|
I found this[^] KB article at InstallShield's site.
It seems like it is the "Microsoft Windows Installer Service" that uses this registry value on "recent" platforms, i.e. w2k and later.
Since you're simply registering the server through command line, I suspect you're building the server with a MSVC version greater than 6.0 and the registration of this value is burried somewhere in the framework. Usually I'm working with MSVC6 so I'm not that familiar with later versions.
If you put a breakpoint inside the server's DllRegisterServer you should get to the code that registers this value...eventually.
Doesn't sound like much fun though. I think it would make sense if you could disable this feature somewhere in the call chain of DllRegisterServer.
BTW, are you able to call any other interface function of your server successfully?
--
Roger
"It's supposed to be hard, otherwise anybody could do it!" - selfquote
"No one remembers a coward!" - Jan Elfström 1998 "...but everyone remembers an idiot!" - my lawyer 2005 when heard of Jan's saying above
|
|
|
|
|
Thanks for information, Roger.
|
|
|
|
|
Roger Stoltz wrote: BTW, are you able to call any other interface function of your server successfully?
--
Yes, I can call old server functions succesfully.
|
|
|
|
|
I have an application that uses COM+ and on some machines i get crashes ... The only error message is the standard windows error message and it gives me this
Faulting application application.exe, version 1.0.0.1, faulting module ole32.dll, version 5.1.2600.2726, fault address 0x00120f57.
Is there any way in which i can trace this address to a exported function in the ole32.dll to get an ideea what exported function is crashing?
Thanks .
|
|
|
|
|
I have been trying to expose an ATL or class objects from an ActiveX control I have created using VC6 MFC.
Any Genius out there who have experience with this?
What I want is to have an ActiveX control "ControlX" what have a property "PropertyY" that is actually a class/ATL with methods and properties.
So If I am using VB6 to call a method in "PropertyY":
call ControlX.PropertyY.MethodZ
Any suggestions are welcome!
|
|
|
|
|
|
You can use #import to get wrapper classes for the stuff implemented, providing that the DLL has a typelibrary embedded in it.
Steve S
Developer for hire
|
|
|
|
|
Thanx Steve
Did u mean i should call getprocaddress on all functions i needed from that dll and make a wrapper around those functions...
Manish
|
|
|
|
|