BHO nesnemdeki C# yöntemlerini sayfadaki Javascript'ten nasıl arayacağımı anlamaya çalışıyorum. Ben C++/ATL/nasıl yapılacağını çok sayıda sayfa bulunamadı gibi Com: Ben birlikte takip ve C# doğru uygulamaya çalışsa, amaJavascript'ten C# BHO yöntemlerini arama
Browser Helper Objects and Scripts Options
Calling BHO method from Javascript?
Yapamam Muhtemelen tam olarak anlamadığım bazı açık COM sorunları nedeniyle çalışmasını sağlayın.
C# 4.0 kullanıyorum. İşte
kodunun ilgili kısımları şunlardır: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 başvuruları serbest bırakmak için emin olmak gerekir kim cevapladı, ii) Gönderdiğiniz bir sorun var ve bunu cevaplamak mümkün üzerinde çalıştığınız anlamına gelir .. Bu 'cidden iyi bir şey .. tebrikler .... – Tirumudi
Merhaba sabit nokta. Tam çalışan bir prototip yazabilir misiniz? Tam olarak bunu yeniden denedim ve window.myExtension 'undefined' kalıyor Bu sorumu tam kaynağımla yükledim [here] (http://stackoverflow.com/questions/15068872/calling-c-sharp-bho-methods- from-javascript-hala-çalışmayan) –
Benim için bu benim sayfada bazı javascript yükler yüklenmez başarısız olur - herhangi bir dış komut dosyası başvurusu olmadan sayfalar, bir dış komut dosyası başvurusu olur olmaz, başarısız olur. Ayrıca garip, başarısız başladığında, daha önce çalıştığı sayfalarda başarısız olmaya devam ediyor. –