Makale numarası: 238975 - Son Gözden Geçirme: 18 Ağustos 2005 Perşembe - Gözden geçirme: 3.4

Nasıl yapılır: bir Office uygulaması çalışan örneği Ekle

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

Çalışmakta olan bir Office uygulamasını otomatikleştirmek için <a0></a0>, ıdispatch işaretçisi çalışan örneği için edinme GetActiveObject() API işlevini kullanabilirsiniz. Bu çalışan örneği ıdispatch işaretçisi sahip olduğunuzda, yöntemleri ve çalışan örneği özelliklerini kullanabilirsiniz.

Daha fazla bilgi

Otomasyon sunucuları kendi içinde çalışmasını kayıt RegisterActiveObject() API aracılığıyla Object Table (ROT). Otomasyon istemcilerinin çalışan bir örnek kodu aşağıdaki gibi ekleyebilirsiniz:
      ::CoInitialize(NULL);

      // Translate server ProgID into a CLSID. ClsidFromProgID
      // gets this information from the registry.
      CLSID clsid;
      CLSIDFromProgID(L"Excel.Application", &clsid);  

      // Get an interface to the running instance, if any..
      IUnknown *pUnk;
      HRESULT hr = GetActiveObject(clsid, NULL, (IUnknown**)&pUnk);
      ASSERT(!FAILED(hr));

      // Get IDispatch interface for Automation...
      IDispatch *pDisp;
      hr = pUnk->QueryInterface(IID_IDispatch, (void **)&pDisp);
      ASSERT(!FAILED(hr));

      // Release the no-longer-needed IUnknown...
      pUnk->Release();

     // ----------------------------------------------------
     // Your automation code here-
     // ----------------------------------------------------

     ::CoUnintialize();
				
Not: bir Otomasyon sunucusu aynı anda çalışan birden çok kopyası varsa, önce çalışmakta olan örneği ıdispatch işaretçisi GetActiveObject() API işlevini verir.

Teorik olarak, her bir örnek ROT yineleme yapabilirsiniz, ancak kendisi için ad her zaman başka bir örneği zaten ROT içinde olduğundan, Office uygulamalarının kendilerini kaydedemeyen aynı ve farklı olamaz. Yani, ilk dışında herhangi bir örneği eklenemiyor. Office uygulamaları da ROT belgeleri kaydetmek için ancak, başarıyla başka örneklerine ROT belirli bir belge için aranıyor, bu belgeye ekleme ve sonra da bu belgeden uygulama nesnesini alma yineleme iliştirebilirsiniz. ROT dolaşmak ve belge adını arayan bir kod örneği için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
190985  (http://support.microsoft.com/kb/190985/ ) Nasıl yapılır: bir OCX ıdispatch Excel veya Word belgesi Al
Bu uygulamalar, belirli bir anda yalnızca bir örneği olabilir, çünkü bu çözümü tek örnekli uygulamalar için gerekli olmadığını unutmayın. PowerPoint, bir tek örnekli uygulama örneğidir.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Office XP Developer Edition
  • Microsoft Office 2000 Developer Edition
  • Microsoft Outlook 98 Standard Edition
  • Microsoft Office 97 Standard Edition
  • Microsoft Office 95 Standard Edition
  • Microsoft Office 95a
  • Microsoft Office 95b
  • Microsoft Visual C++ 4.0 Standard Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
Anahtar Kelimeler: 
kbmt kbfaq kbhowto KB238975 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:238975  (http://support.microsoft.com/kb/238975/en-us/ )