Open GoodZivi opened 1 year ago
That's right, but weird, Catastrophic Failure (Error 0x8000FFFF) occurs when calling DispInvoke with dispid=1
Hi,durs. According to the question I search.I think I have found the reason. Before Ole4.0,External programs can directly call methods in OCX. After Ole4.0, every time a method in a control is called, the system will automatically check whether it is allowed to be called, that is, run 'COleControl. IsInvokeAllowed (DISPID)'
This method checks whether the control is properly initialized or loaded through a persistent storage interface. If one of the two conditions is met, it returns TRUE, otherwise it returns FALSE.
When using controls in MFC, many details, such as initialization, are filtered out, so that most users will not encounter this problem.
But when I call the function in node, it return false.
The solution is to overwrite this method again like this: ''' BOOL CMyNameCtrl::IsInvokeAllowed (DISPID) {
return TRUE;
} ''' This work is difficult for me, because the ocx file is provided by another corporation.Finally, I changed my approach to solving this matter without node.
Dear @GoodZivi,
I got the same issue and your research gave me an understanding. Thank you.
But this is still problem for me. So did you find the another solution ? Then could you share how to?
Thank you.
Hi,I am a beginner.I had a problem using winax.Could you help me please. Here is my code.
Terminal output.
I cannot call the function like this.How to call 'multiply' function?
Terminal output
Am i use it incorrectly? At last, I am so sorry for my poor English.