से सी # बीएचओ विधियों को कॉल करना मैं पृष्ठ के भीतर जावास्क्रिप्ट से अपने बीएचओ ऑब्जेक्ट में सी # विधियों को कॉल करने का तरीका जानने का प्रयास कर रहा हूं। मैं कैसे C++/ATL/यह करने के लिए पर कई पृष्ठों पाया कॉम जैसे:जावास्क्रिप्ट
Browser Helper Objects and Scripts Options
Calling BHO method from Javascript?
मैं आगे बढ़ने के और सी # में सही ढंग से इसे लागू करने की कोशिश की है, लेकिन मैं नहीं कर सकता शायद कुछ स्पष्ट COM समस्याओं के कारण काम करने के लिए इसे प्राप्त करें जो मेरे पास है जो मैं पूरी तरह समझ नहीं पा रहा हूं।
मैं सी # 4.0 का उपयोग कर रहा हूं।
यहाँ कोड के प्रासंगिक भागों हैं:
using SHDocVw;
using mshtml;
using System.Runtime.InteropServices;
[ComVisible(true),
Guid("300736C4-DCDA-4DB0-90AD-4510A12EBBC6"),
ClassInterface(ClassInterfaceType.None),
ProgId("My Extension")]
public class BrowserHelperObject : IObjectWithSite
{
const int DISPATCH_PROPERTYPUT = 4;
const int FDEX_NAME_ENSURE = 2;
const uint LOCALE_USER_DEFAULT = 0x0400;
WebBrowser browser;
...
public void OnDocumentComplete(dynamic frame, ref dynamic url)
{
...
var window = browser.Document.parentWindow;
int pid = 0;
window.GetDispId("myExtension", FDEX_NAME_ENSURE, ref pid);
System.Runtime.InteropServices.ComTypes.DISPPARAMS dispParms = new System.Runtime.InteropServices.ComTypes.DISPPARAMS();
dispParms.cArgs = 1;
dispParms.cNamedArgs = 0;
dispParms.rgvarg = ???;
dispParms.rgdispidNamedArgs = IntPtr.Zero;
System.Runtime.InteropServices.ComTypes.EXCEPINFO einfo = new System.Runtime.InteropServices.ComTypes.EXCEPINFO();
window.Invoke(pid, LOCALE_USER_DEFAULT, DISPATCH_PROPERTYPUT, ref dispParms, this, ref einfo);
...
}
की COM संदर्भ जारी करने के लिए सुनिश्चित करने के लिए अपने खुद के सवाल का जवाब देने के लिए अफसोस मत करो .. की जरूरत है, क्योंकि मैं) लोग उत्तर के लिए और नहीं व्यक्ति के लिए देखो जिन्होंने उत्तर दिया, ii) आपके पास कोई समस्या पोस्ट की गई है और आप इसका उत्तर देने में सक्षम हैं इसका मतलब है कि आपने इस पर काम किया है .. वह 'गंभीरता से अच्छी बात है .. बधाई .... – Tirumudi
हाय फिक्स्ड पॉइंट। क्या आप एक पूर्ण कामकाजी प्रोटोटाइप पोस्ट कर सकते हैं? मैंने वास्तव में इसे और मेरी खिड़की को दोबारा करने की कोशिश की। मेरा एक्सटेंशन 'अपरिभाषित' रहता है मैंने इस प्रश्न को मेरे पूर्ण स्रोत [यहां] के साथ पोस्ट किया [http://stackoverflow.com/questions/15068872/calling-c-sharp-bho-methods- जावास्क्रिप्ट-अभी भी काम नहीं कर रहा है) –
मेरे लिए यह मेरे पृष्ठ में कुछ जावास्क्रिप्ट लोड करने में विफल रहता है - बिना किसी बाहरी स्क्रिप्ट संदर्भ के पृष्ठों पर यह ठीक है, जैसे ही मेरे पास बाहरी स्क्रिप्ट संदर्भ होता है, यह विफल हो जाता है। यह भी अजीब बात है, एक बार जब यह विफल हो जाता है तो यह उन पृष्ठों पर असफल रहता रहता है जो पहले काम करते थे। –