Makale numarası: 230689 - Son Gözden Geçirme: 09 Ağustos 2004 Pazartesi - Gözden geçirme: 5.4

Örnek: Comaddin.exe Office 2000 COM Visual C++ ile yazılan eklentisi

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ı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Bir Office 2000 veya Office XP Bileşen Nesne Modeli (COM) eklenti Visual C++ kullanarak yapı gösteren kendiliğinden açılan çalıştırılabilir Comaddin.exe var. Bir COM eklentisi içeriğinde bir veya birden çok Office 2000 veya Office XP uygulamaları çalıştırmak için özel olarak tasarlanmış bir işlem içi COM sunucusudur. COM eklentileri, Office Ortamı'nı genişletme esnek, verimli ve tutarlı bir yöntem sunar.

COM eklentileri, COM bileşenleri gibi Visual Basic, C/C++ C# ve Office 2000 Developer'ı veya Office XP Developer edition, Microsoft Visual Basic for Applications (VBA) oluşturabilen herhangi bir programlama dili kullanılarak oluşturulmuştur.

Bu örnek, bir COM eklentisi, Visual C++ oluşturmak için gereken adımları gösterir. Örnek, kendi Office eklentisi oluşturmak için genişleten bir temel eklenti Kabuk oluşturur.

Daha fazla bilgi

Aşağıdaki dosya Microsoft Yükleme Merkezi'nden yüklenebilir:
Comaddin.exe (http://download.microsoft.com/download/office2000dev/update/1/win98/en-us/comaddin.exe)
Yayım Tarihi: Ocak 4, 1999

Microsoft destek dosyalarını karşıdan yükleme konusunda ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
119591  (http://support.microsoft.com/kb/119591/EN-US/ ) Microsoft Destek Dosyaları Çevrimiçi Hizmetler'den Nasıl Alınır
Microsoft bu dosyada virüs taraması yapmıştır. Microsoft, dosyanın kullanıma sunulduğu tarihteki en güncel virüs tarama yazılımını kullanmıştır. Dosya, üzerinde herhangi bir yetkisiz değişiklik yapılmasını engellemeye yardım eden geliştirilmiş güvenliğe sahip sunucularda depolanır.

Örnek dosya bilgileri

Seçtiğiniz bir klasöre aşağıdaki dosyalar Comaddin.exe ayıklayan:
   FileName                    Size
   ----------------------------------------
   
   TestAddin.dsw               541 bytes
   TestAddin.dsp               4.11 KB 
   ComAddin.h                  6.19 KB
   ComAddin.cpp                8.38 KB
   ComAddin.def                205 bytes
   MyAddin.cpp                 10.6 KB
   MyAddinCF.cpp               2.18 KB
   BttnHandler.cpp             6.27 KB

IDTExensibility2

Bir Office eklentisi gibi bir COM nesnesi için onu IDTExensibility2 arabirimi Microsoft eklenti Tasarımcısı tür kitaplığı içinde (Msaddndr.dll) açıklandığı gibi desteklemelidir. Hiçbir alma gereklidir; bu nedenle bu arabirim, ComAddin.h bildirildi. Tüm COM eklentilerini Bu arabirimden devralır ve her beş yöntemlerinden birini uygulamalısınız:
  • OnConnection
  • OnDisconnection
  • Onaddınsupdate
  • OnStartupComplete
  • OnBeginShutdown
Bir COM eklentisini ilk yüklendiğinde, ıdtextensibility2 için Queryınterface çağrısı yapıldı. Bu çağrı başarısız olursa, eklentiyi kaldırılır. Çağrı başarılı olursa, ana uygulama eklenti durumuna yapılan değişikliklerin bildirmek için başvuru kullanır. Her yönteminin BIR açıklaması aşağıdadır.

OnConnection

COM eklentisini bağlı her OnConnection olayı harekete. Eklentiyi başlatma sırasında son kullanıcı tarafından ya da Otomasyon yoluyla bağlı olabilir. OnConnection S_OK döndürür, eklentinin yüklenmesi denir. Başka bir değer döndürülürse, ana uygulama, eklenti için başvuru hemen yayımlayacaktır ve nesne yok edilir.

OnConnection aşağıdaki dört parametre yer alır:
  • Uygulama - BIR ana bilgisayar uygulamasının ıdispatch Arabirimi Başvurusu'nu tıklatın.
  • ConnectMode - eklentinin nasıl bağlı olduğunu belirten BIR sabit.
    • ext_cm_AfterStartup - COM Eklentileri iletişim kutusundan son kullanıcı tarafından başlatıldı.
    • ext_cm_CommandLine - komut satırından bağlandı.
    • ext_cm_External - Otomasyon yoluyla bir dış uygulama tarafından bağlandı.
    • ext_cm_Startup - uygulama başlangıçta ana makinesi tarafından başlatıldı. Bu davranış, kayıt defterindeki bir ayar tarafından denetlenebilir.
  • AddInInst - bu eklenti ana bilgisayar uygulamasının <a1>COM eklentileri</a1> koleksiyonunda başvurduğu COMAddIn nesnesine BIR başvuru.
  • Özel - değişkenleri, kullanıcı tanımlı veri saklayabilen bir dizisi.


OnDisconnection

COM eklentisini kesildiğinde ve yalnızca bu belleği kaldırır önce OnDisconnection olayı harekete. Eklenti herhangi bir temizleme kaynakların bu olayda gerçekleştirin ve ana uygulamaya yapılan değişiklikleri geri.

OnDisconnection aşağıdaki iki parametre alır:
  • RemoveMode - eklentinin nasıl kesildi belirten BIR sabit.
    • ext_dm_HostShutdown - ana uygulama kapandığında bağlantı kesildi.
    • ext_dm_UserClosed - son kullanıcı ya da bir Otomasyon denetleyicisi bağlantısı kesildi.
  • Özel - değişkenleri, kullanıcı tanımlı veri saklayabilen bir dizisi.


Onaddınsupdate

Kayıtlı COM eklentileri kümesi değiştiğinde Onaddınsupdate olayı harekete. Her bir COM eklentisi yüklenmiş veya ana bilgisayar uygulamadan kaldırıldı, başka bir deyişle, bu olay harekete.


OnStartupComplete ve OnBeginShutdown

Ana bilgisayar uygulamasının ayrıldı veya uygulama yükleme veya kendisi bellekten kaldırılması meşgul olduğu için kullanıcı etkileşimi kaçınılmalıdır bir duruma girerken OnStartupComplete ve OnBeginShutdown olayları eklenti bildirir. OnStartupComplete yalnızca başlangıç sırasında eklentiniz bağlandı ve eklenti ana bilgisayar tarafından kapatma sırasında kesilirse OnBeginShutdown yalnızca ateşlenmesine ateşlenmesine.

Bu olaylar ba?latmak için kullanıcı arabirimi için ana bilgisayar uygulamasının tam etkin olduğundan, aksi durumda OnConnection ve OnDisconnection kullanılamaz olacak belirli eylemleri gerçekleştirmek için tek yol olabilirler.

COM eklentisi kaydediliyor

Normal COM kayıt ek olarak, bir COM eklentisini kendisini her Office 2000 uygulaması içinde güvenli biçimde çalıştırabilirsiniz kaydetmek gerekiyor. Kendisini, belirli bir uygulama ile kaydetmek için <a0></a0>, eklenti, Progıd anahtarının altında aşağıda belirtilen konumda, adı kullanarak bir alt anahtar oluşturur:

HKEY_CURRENT_USER\Software\Microsoft\Office\<appname>\Addins\<addinprogid>
Eklenti kolay görünen ad hem de tam bir açıklaması için anahtar bu konumda bir değer sağlar. Buna ek olarak, eklentiyi istenen yükleme davranışı "LoadBehavior." adlı bir DWORD değeri'ni kullanarak belirtmeniz gerekir Bu değer, nasıl eklenti ana bilgisayar uygulaması tarafından yüklenir ve aşağıdaki değerlerin birleşimini yapılan belirler:
  • 0x00 Bağlantıyı Kes'i = - yüklü değil.
  • 0x01 bağlı = - yüklenen.
  • 0x02 bootload - <a1>Uygulama</a1> başlangıç üzerindeki yükü =.
  • 0x08 - demandLoad kullanıcı tarafından istendiğinde yükle =.
  • 0x16 ConnectFirstTime - yalnızca bir kez (başlangıçta sonraki) yük =.
Belirtilen normal 0x03 değeridir (bağlı | Bootload).

ıdtextensibility2 uygulayan eklentileri DWORD belirtmeniz gerekir "bir kullanıcı arabirimi desteği olan tüm işlemler için güvenli olup olmadıklarını belirtmek için çağrılan CommandLineSafe" değeri. 0X00 değeri FALSE, true 0x01 olan anlamına gelir. Bu örnek, bir ileti kutusu görüntüler için komut satırı yürütme için güvenli değil ve bu nedenle için 0x00 değeri'ni ayarlar.

Başlarken

Eklentileri yazmaya başlamak için <a0></a0>, örnek proje derleme, regsvr32.exe üzerinde yerleşik dll DOSYASıNı çalıştırın ve sonra ve/Microsoft Word, Excel, PowerPoint veya FrontPage 2000'i başlatın. "Merhaba" diyor ve olduğu hangi uygulama söyler eklentiyi yükledi gibi açık bir iletişim kutusu görmelisiniz.

(c) Microsoft Corporation 1999, tüm hakları saklıdır. Katkıyı Richard R'ye Taylor, Microsoft Corporation.


Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Excel 2000 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
  • Microsoft Office XP Developer Edition
  • Microsoft Office 2000 Developer Edition
  • Microsoft FrontPage 2002 Standard Edition
  • Microsoft FrontPage 2000 Standard Edition
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Outlook 2000
  • Microsoft Outlook 2002 Standard Edition
Anahtar Kelimeler: 
kbmt kbdownload kbautomation kbfile kbinfo kbsample KB230689 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:230689  (http://support.microsoft.com/kb/230689/en-us/ )