ตัวอย่าง: Comaddin.exe Office 2000 COM เพิ่มในการเขียนใน c ++ Visual

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 230689 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

Comaddin.exe ถูกปฏิบัติเองที่แสดงอาคาร Office 2000 หรือ Office XP คอมโพเนนต์วัตถุแบบจำลอง (COM) เพิ่มเข้าใช้ c ++ Visual มี COM add-in ที่เป็นเซิร์ฟเวอร์ COM ในกระบวนการออกแบบมาเพื่อที่เรียกใช้ภายในบริบทของโปรแกรมประยุกต์ Office 2000 หรือ Office XP อย่าง น้อยหนึ่งโดยเฉพาะ โปรแกรม COM เพิ่มเติมให้วิธีการที่ขยายสภาพแวดล้อมของสำนักงานแบบยืดหยุ่น มีประสิทธิภาพ และสม่ำเสมอ

โปรแกรม COM เพิ่มเติมถูกสร้างโดยใช้ภาษาเขียนโปรแกรมที่สามารถสร้างคอมโพเนนต์ COM เช่น Visual Basic, C/c ++ c# และนักพัฒนา 2000 Office หรือนักพัฒนา XP Office รุ่นของ Microsoft Visual Basic สำหรับโปรแกรมประยุกต์ (VBA)

ตัวอย่างนี้อธิบายขั้นตอนที่จำเป็นเพื่อสร้างการ COM add-in ใน c ++ Visual ที่ ตัวอย่างสร้างการพื้นฐานเพิ่มในเชลล์ที่คุณสามารถสร้างบ้านของคุณเอง Office add-in ที่ขยาย

ข้อมูลเพิ่มเติม

แฟ้มต่อไปนี้สามารถดาวน์โหลดได้จากศูนย์ดาวน์โหลดของ Microsoft::
Comaddin.exe
วันวางจำหน่าย: 4 มกราคม 1999

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการดาวน์โหลดแฟ้มสนับสนุนของ Microsoft โปรดคลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base::
119591วิธีรับแฟ้มการสนับสนุนของไมโครซอฟท์จากบริการออนไลน์
Microsoft สแกนแฟ้มนี้เพื่อหาไวรัส Microsoft ใช้ซอฟต์แวร์ตรวจสอบไวรัสล่าสุด ณ วันที่มีการประกาศแฟ้มนั้นๆ แฟ้มดังกล่าวจะถูกเก็บในเซิร์ฟเวอร์เพิ่มการรักษาความปลอดภัย ซึ่งช่วยป้องกันการเปลี่ยนแปลงแก้ไขแฟ้มโดยไม่ได้รับอนุญาต

ตัวอย่างแฟ้มข้อมูล

Comaddin.exe แยกแฟ้มไปยังโฟลเดอร์ของคุณการเลือกต่อไปนี้:
   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

สำหรับวัตถุ COM ไปอยู่สำนักงาน add-in ที่ จะต้องสนับสนุนอินเทอร์เฟซ IDTExensibility2 ตามที่อธิบายไว้ในไลบรา Microsoft เพิ่มในตัวออกแบบชนิดรี (Msaddndr.dll) อินเทอร์เฟซนี้ได้ถูกประกาศสำหรับคุณใน ComAddin.h เพื่อนำเข้าไม่จำเป็นต้อง สืบทอดมาจากอินเทอร์เฟซนี้ และต้องปฏิบัติตามวิธีที่ 5 ของแต่ละโปรแกรมทั้งหมด COM เพิ่มเติม:
  • OnConnection
  • OnDisconnection
  • OnAddInsUpdate
  • OnStartupComplete
  • OnBeginShutdown
เมื่อมี COM add-in ที่มีก่อนการโหลด เรียก QueryInterface ถูกทำสำหรับ IDTExtensibility2 ถ้ามีการเรียกนี้ล้มเหลว การเพิ่มเข้าถูกยกเลิกการโหลด ถ้าการโทรสำเร็จ แอพลิเคชันโฮสต์จะใช้การอ้างอิงที่แจ้งให้ทราบเพิ่มเข้าของการเปลี่ยนแปลงไปเป็นสถานะการส่งคืน คำอธิบายของแต่ละวิธีต่อไปนี้

OnConnection

เหตุการณ์ OnConnection fires ทุกครั้ง COM add-in ที่มีการเชื่อมต่อ การเพิ่มเข้าอาจอย่างง่ายมีการเชื่อมต่อเมื่อเริ่มต้น โดยผู้ใช้ หรือ ผ่านการดำเนินการอัตโนมัติ ถ้า OnConnection ส่งกลับค่า S_OK การเพิ่มเข้าเป็น said จะโหลด ถ้ามีการส่งคืนค่าอื่น แอพลิเคชันโฮสต์จะปล่อยของการอ้างอิงไปเพิ่มเข้าในทันที และจะสามารถทำลายวัตถุ

OnConnection ใช้พารามิเตอร์ทั้งสี่ต่อไปนี้:
  • โปรแกรมประยุกต์ - การอ้างอิงไปยังอินเทอร์เฟซ IDispatch ของแอพลิเคชันของโฮสต์
  • ConnectMode - ค่าคงที่ระบุในการเชื่อมต่อวิธีการเพิ่มเข้ามีอยู่
    • ext_cm_AfterStartup - เริ่มต้น โดยผู้ใช้จากกล่องโต้ตอบการคงคลังที่เพิ่ม COM
    • ext_cm_CommandLine - การเชื่อมต่อจากบรรทัดคำสั่ง
    • ext_cm_External - การเชื่อมต่อ โดยโปรแกรมประยุกต์ภายนอกโดยอัตโนมัติ
    • ext_cm_Startup - เริ่มต้น โดยโฮสต์เมื่อเริ่มต้นโปรแกรมประยุกต์ ลักษณะการทำงานนี้สามารถควบคุมได้ โดยการตั้งค่าในรีจิสทรี
  • AddInInst - การอ้างอิงถึงวัตถุ COMAddIn ที่อ้างอิงถึงนี้เพิ่มไว้ในคอลเลกชัน COMAddIns สำหรับแอพลิเคชันของโฮสต์
  • กำหนดเอง - มีอาร์เรย์ของตัวแปรที่สามารถเก็บข้อมูลที่กำหนดโดยผู้ใช้


OnDisconnection

เหตุการณ์ OnDisconnection fires เมื่อการ COM add-in ที่ถูกตัด และเพียงแค่ ก่อนที่จะ unloads จากหน่วยความจำ การเพิ่มเข้าควรทำการล้างข้อมูลใด ๆ ของทรัพยากรในเหตุการณ์นี้ และคืนค่าการเปลี่ยนแปลงใด ๆ ที่ทำแอพพลิเคชันโฮสต์

OnDisconnection ใช้พารามิเตอร์การสองแบบต่อไปนี้:
  • RemoveMode - ค่าคงที่ระบุวิธีการเพิ่มไว้ถูกตัด
    • ext_dm_HostShutdown - ยกเลิกการเชื่อมต่อเมื่อปิดโปรแกรมประยุกต์โฮสต์
    • ext_dm_UserClosed - ยกเลิกการเชื่อมต่อ โดยผู้ใช้หรือตัวควบคุมทำงานอัตโนมัติ
  • กำหนดเอง - มีอาร์เรย์ของตัวแปรที่สามารถเก็บข้อมูลที่กำหนดโดยผู้ใช้


OnAddInsUpdate

เหตุการณ์ OnAddInsUpdate fires เมื่อทำการเปลี่ยนแปลงการตั้งค่าของการลงทะเบียน COM เพิ่ม-คงคลัง ในอย่างอื่น ทุกครั้ง COM ถูกติดตั้ง หรือเอาออกจากโปรแกรมประยุกต์โฮสต์ เหตุการณ์นี้ fires


OnStartupComplete และ OnBeginShutdown

เหตุการณ์ทั้ง OnStartupComplete และ OnBeginShutdown แจ้งเตือนเพิ่มเข้าเมื่อโปรแกรมประยุกต์โฮสต์ได้ออกจาก หรือมีการป้อนสถานะที่โต้ตอบผู้ใช้ควรถูก avoided เนื่องจากโปรแกรมประยุกต์ไม่ว่างกำลังโหลด หรือ unloading เองจากหน่วยความจำ OnStartupComplete จะดำเนินถ้าเชื่อมต่อของ add-in ที่มีอยู่ในระหว่างการเริ่มต้น และ OnBeginShutdown จะดำเนินเฉพาะถ้าของ add-in ที่ถูกตัด โดย host ในระหว่างการปิดระบบเท่านั้น

เนื่องจากผู้ใช้เทอร์เฟซสำหรับแอพลิเคชันของโฮสต์ทั้งหมดที่ใช้งานอยู่เมื่อดำเนินการเหตุการณ์เหล่านี้ เหล่านั้นอาจเป็นวิธีเดียวที่จะทำการดำเนินการบางอย่างที่มิฉะนั้น จะไม่พร้อมใช้งานจาก OnConnection และ OnDisconnection

การลงทะเบียน COM เพิ่มใน

นอกเหนือจากการลงทะเบียน COM ปกติ การ COM add-in ที่ต้องการลงทะเบียนตัวเองที่ มีโปรแกรมประยุกต์ Office 2000 แต่ละที่จะสามารถเรียกได้อย่างปลอดภัยใช้ เมื่อต้องการลงทะเบียนตัวเอง ด้วยโปรแกรมประยุกต์ที่เฉพาะ การเพิ่มในสร้างคีย์ย่อย การใช้ ProgID ของชื่อสำหรับคีย์ ภายใต้ตำแหน่งที่ตั้งต่อไปนี้:

HKEY_CURRENT_USER\Software\Microsoft\Office\ <appname> \Addins\ <addinprogid></addinprogid> </appname>
การเพิ่มในสามารถให้ค่าในตำแหน่งนี้คีย์สำหรับชื่อที่ใช้แสดงที่จำง่ายและคำอธิบายเต็ม นอกจากนี้ การเพิ่มที่ควรระบุปัญหาการโหลดที่ต้องการใช้ค่า DWORD ที่เรียกว่า "LoadBehavior" ค่านี้กำหนดวิธีเพิ่มเข้าจะถูกโหลด โดยโปรแกรมประยุกต์โฮสต์ และจัดทำขึ้นของชุดของค่าต่อไปนี้:
  • 0x00 = Disconnect - ถูกโหลดไม่
  • 0x01 = Connected - ถูกโหลด
  • 0x02 = bootload - การโหลดในแอพลิเคชันสำหรับเริ่มต้น
  • 0x08 = demandLoad - โหลดเมื่อการร้องขอ โดยผู้ใช้
  • 0x16 = ConnectFirstTime - โหลดเพียงครั้งเดียว (ในการเริ่มต้นถัดไป)
ค่าทั่วไปที่ระบุถูก 0x03 (Connected | Bootload)

โปรแกรมเพิ่มเติมที่นำมาใช้ IDTExtensibility2 ยังควรระบุ DWORD เป็นค่าที่เรียกว่า "CommandLineSafe" เพื่อบ่งชี้ว่า สินค้าจะปลอดภัยสำหรับการดำเนินการที่ไม่สนับสนุนอินเทอร์เฟซของผู้ใช้ หมายค่า 0x00 ถึง False, 0x01 เป็น True เนื่องจากตัวอย่างนี้แสดงเป็นกล่องข้อความ นั้นไม่ปลอดภัยสำหรับการดำเนินการบรรทัดคำสั่ง และดังนั้น ทำกำหนดค่าให้ 0x00

เริ่มต้น

เมื่อต้องการเริ่มต้นการเขียนคงคลังที่เพิ่ม การคอมไพล์โครงการตัวอย่าง การเรียกใช้ regsvr32.exe บน DLL ที่สร้าง แล้ว เรียกใช้ Microsoft Word, Excel, Powerpoint และ/หรือ Frontpage 2000 คุณควรเห็นกล่องโต้ตอบเปิด ตามที่จะเพิ่มไว้ได้รับการโหลดที่แจ้งว่า "Hello" และบอกให้คุณทราบโปรแกรมประยุกต์ใดอยู่

(c) Microsoft Corporation 1999 สงวนลิขสิทธิ์ เขียนโดย Richard R. Taylor, Microsoft Corporation

คุณสมบัติ

หมายเลขบทความ (Article ID): 230689 - รีวิวครั้งสุดท้าย: 12 ตุลาคม 2553 - Revision: 2.0
ใช้กับ
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • 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 Standard Edition
  • Microsoft Outlook 2002 Standard Edition
Keywords: 
kbdownload kbautomation kbfile kbinfo kbsample kbmt KB230689 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:230689

ให้ข้อเสนอแนะ

 

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