Erişim yöntemleri/kapsayıcısı özelliklerinden nasıl komut dosyası kaynağı

Makale çevirileri Makale çevirileri
Makale numarası: 188015 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Hepsini aç | Hepsini kapa

Özet

Visual C++ uygulamasında WebBrowser denetimi barındıran, Web sayfasındaki komut dosyasından, yöntemleri veya özellikleri kapsayıcısının erişmek gerekli olabilir. Bu makalede, IDocHostUIHandler arabirimi uygulayarak bunun nasıl yapılacağı açıklanır.

Daha fazla bilgi

IDocHostUIHandler arabirimi kullanarak, WebBrowser denetimi kullanıcı arabirimi özelliklerinin çoğunu barındırma uygulamanızda denetleyebilirsiniz. IDocHostUIHandler yöntemlerine ve özelliklerine dosyası içinde kapsayıcıdan erişmek için dinamik HTML (DHTML) nesne modeli genişletmenizi sağlar.

IDocHostUIHandler GetExternal() yöntemi, bu işlevselliği sağlar. WebBrowser denetimi, bir Web sayfasında komut dosyası "window.external.yourMethod" aradığında, barındırma uygulamanızın ıdispatch işaretçisi almak için <a2>GetExternal</a2> yöntemini çağırır. Bu işaretçi WebBrowser denetimi, yöntemlerine ve özelliklerine erişebilir olmasıdır.

WebBrowser denetimi kapsayıcısının ıdispatch işaretçisi sonra daha sonra bu durumda, komut dosyasından yourMethod adlı bir özellik veya yöntemi DISPID almak için IDispatch::GetIDsOfNames() çağırır.

Son olarak, WebBrowser denetimi çağrıları IDispatch::Invoke() DISPID ile GetIDsOfNames() alınır.

DHTML nesne modeli kapsayıcının yöntemleri ve özellikleri komut dosyasından erişebilecek uzatmak için izlemeniz gereken adımları aşağıda verilmektedir:
  1. IDocHostUIHandler uygular.
  2. IDocHostUIHandler::GetExternal yöntemini uygular. ıdispatch ayarlamak aşağıdaki parametresi, kendi kapsayıcısının gibi:
    STDMETHOD(GetExternal)(IDispatch** ppDispatch)
    {
       // Assumes you inherit from IDispatch
       *ppDispatch = (IDispatch*)this;
       (*ppDispatch)->AddRef();
    
       return S_OK;
    }
    					
  3. Yükleme KIMLIĞI (DISPID) yöntem veya özellik GetIDsOfNames döndürür. Yöntem ya da bir sihirbaz kullanarak özelliği eklediyseniz, bu sizin için yapılır.
  4. <a1>Uygula</a1> yöntemi veya özelliği, uygulamasında IDispatch::Invoke DISPID bunu istiyor:
    STDMETHODIMP CAtlBrCon::Invoke(DISPID dispidMember, REFIID riid,
                                   LCID lcid, WORD wFlags,
                                   DISPPARAMS* pDispParams,
                                   VARIANT* pvarResult,
                                   EXCEPINFO* pExcepInfo, UINT* puArgErr)
    {
       switch (dispidMember)
       {
          case DISPID_MYMETHOD_OR_PROPERTY:
             // Do something here
    
          default:
             return E_INVALIDARG;
       }
    
       return S_OK;
    }
    					
  5. A?a??daki komut dosyasından bir yöntem veya özellik kapsayıcısının arayın:
     <SCRIPT LANGUAGE="VBScript">
        Sub SomeControl_OnClick
           window.external.yourMethod
        End Sub
     </SCRIPT>
    					

Referanslar

Bu makalede açıklanan teknolojileri hakkında daha fazla bilgi için Gelişmiş barındırma arabirimleri ve MSDN Online Web Workshop içinde IDocHostUIHandler belgelerine başvurun:
http://msdn.microsoft.com/workshop/
(c) Microsoft Corporation 1998, tüm hakları saklıdır. Katkıyı yakın Scott, Microsoft Corporation

Özellikler

Makale numarası: 188015 - Last Review: 2 Şubat 2014 Pazar - Gözden geçirme: 2.1
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Internet Explorer 4.0 128-Bit Edition
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 4.01 Service Pack 1
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 5.5
Anahtar Kelimeler: 
kbnosurvey kbarchive kbmt kbfaq kbhowto kbscript kbwebbrowser KB188015 KbMttr
Machine-translated Article
Ö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:188015

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com