Makale numarası: 261003 - Son Gözden Geçirme: 21 Nisan 2006 Cuma - Gözden geçirme: 3.0

WebBrowser denetimi ana bilgisayar olarak komut dosyası hatalarında nasıl

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.
Hepsini aç | Hepsini kapa

Özet

WebBrowser denetimi, toplantının IOleCommandTarget arabiriminden işlenemeyen bir komut dosyası hata bildirir. Ana bilgisayar görüntüleyebilir sonra hata hakkında bilgi almak, (veya gizle) hata kullanıcıya ileti ve komut dosyaları sayfada çalıştırılıp çalıştırılmayacağını seçin.

Daha fazla bilgi

Bir komut dosyası altyapılarının işlenmeyen bir hata ile karşılaştığında, onu daha sonra kapsayıcısının kapsayıcıyı IOleCommandTarget uygulamıştır görmek için sorgular WebBrowser denetimi hata iletir. Kapsayıcıyı IOleCommandTarget uygulamıştır WebBrowser denetiminin komut grubu KIMLIĞI (hangi Mshtmhst.h dosyasında tanımlanan) CGID_DocHostCommandHandler ve bir komut KIMLIĞI OLECMDID_SHOWSCRIPTERRORIOleCommandTarget::Exec yöntemini çağırır. "Bu sayfadaki bir hata oluştu" S_OK ana döndürmezse, MSHTML varsayılan'ı görüntüler hata iletisi.

Aşağıdaki kod, belge nesne modeli hata bilgilerini alır, bu komut KIMLIĞI için bir işleyici nasıl gösterir. Bu kod hata işleme gösterilmektedir.

Not: kullanıcı Internet seçenekleri altında <a2>Gelişmiş</a2> sekmesinde Komut dizisi hata ayıklamasını devreden çıkar onay kutusu temizlenmişse bu yöntem çağrılabilen değil.
   STDMETHODIMP CMyBrowser::Exec( const GUID* pguidCmdGroup, DWORD nCmdID,
      DWORD nCmdexecopt, VARIANTARG* pvaIn, VARIANTARG* pvaOut )
   {

      HRESULT hr = S_OK;

      if (pguidCmdGroup && IsEqualGUID(*pguidCmdGroup, CGID_DocHostCommandHandler))
      {
         
         switch (nCmdID) 
         {
         
         case OLECMDID_SHOWSCRIPTERROR:
         {
            IHTMLDocument2*             pDoc = NULL;
            IHTMLWindow2*               pWindow = NULL;
            IHTMLEventObj*              pEventObj = NULL;
            BSTR                        rgwszNames[5] = 
                                        { 
                                           SysAllocString(L"errorLine"),
                                           SysAllocString(L"errorCharacter"),
                                           SysAllocString(L"errorCode"),
                                           SysAllocString(L"errorMessage"),
                                           SysAllocString(L"errorUrl")
                                        };
            DISPID                      rgDispIDs[5];
            VARIANT                     rgvaEventInfo[5];
            DISPPARAMS                  params;
            BOOL                        fContinueRunningScripts = true;
            int	                        i;

            params.cArgs = 0;
            params.cNamedArgs = 0;

            // Get the document that is currently being viewed.
            hr = pvaIn->punkVal->QueryInterface(IID_IHTMLDocument2, (void **) &pDoc);				
            // Get document.parentWindow.
            hr = pDoc->get_parentWindow(&pWindow);
            pDoc->Release();
            // Get the window.event object.
            hr = pWindow->get_event(&pEventObj);
            // Get the error info from the window.event object.
            for (i = 0; i < 5; i++) 
            {  
               // Get the property's dispID.
               hr = pEventObj->GetIDsOfNames(IID_NULL, &rgwszNames[i], 1, 
                       LOCALE_SYSTEM_DEFAULT, &rgDispIDs[i]);
               // Get the value of the property.
               hr = pEventObj->Invoke(rgDispIDs[i], IID_NULL,
LOCALE_SYSTEM_DEFAULT,
                       DISPATCH_PROPERTYGET, &params, &rgvaEventInfo[i],
NULL, NULL);
               SysFreeString(rgwszNames[i]);
            }

            // At this point, you would normally alert the user with 
            // the information about the error, which is now contained
            // in rgvaEventInfo[]. Or, you could just exit silently.

            (*pvaOut).vt = VT_BOOL;
            if (fContinueRunningScripts)
            {
               // Continue running scripts on the page.
               (*pvaOut).boolVal = VARIANT_TRUE;
            }
            else
            {
               // Stop running scripts on the page.
               (*pvaOut).boolVal = VARIANT_FALSE;			
            } 
            break;
         }
         default:
            hr = OLECMDERR_E_NOTSUPPORTED;
            break;
         }
      }
      else
      {
         hr = OLECMDERR_E_UNKNOWNGROUP;
      }
      return (hr);
   }
				

Referanslar

IOleCommandTarget arabirim uygulama ile ilgili ek bilgi için lütfen aşağıdaki Microsoft Developer Network (MSDN) Web sitesine bakın:
http://msdn.microsoft.com/library/default.asp?URL=/library/psdk/com/oin_oc_9bg4.htm (http://msdn.microsoft.com/library/default.asp?URL=/library/psdk/com/oin_oc_9bg4.htm)
Microsoft ınternet Explorer için Web tabanlı çözümler geliştirme hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitelerini ziyaret edin:
http://msdn.microsoft.com/ie/ (http://msdn.microsoft.com/ie/)

http://support.microsoft.com/iep (http://support.microsoft.com/iep)

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Internet Explorer (Programming) 5
  • Microsoft Internet Explorer (Programming) 5.01
  • Microsoft Internet Explorer (Programming) 5.5
Anahtar Kelimeler: 
kbmt kbhowto kbwebbrowser KB261003 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:261003  (http://support.microsoft.com/kb/261003/en-us/ )
Retired KB ArticleKullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.