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

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

ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้: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::
วันวางจำหน่าย: 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

คำเตือน: บทความนี้ได้รับการแปลโดยอัตโนมัติ

คุณสมบัติ

รหัสบทความ: 230689 - การตรวจสอบครั้งสุดท้าย: 12/05/2015 14:23:56 - ฉบับแก้ไข: 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

  • kbnosurvey kbarchive kbdownload kbautomation kbfile kbinfo kbsample kbmt KB230689 KbMtth
คำติชม