首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

Excel 2000/XP 與 PowerPoint 2000/XP 內部 COM 增益集開發實戰

     編輯:關於VC++

前言

本文承接《Office 2000 內部 COM 增益集編程實現》與《Word 2000/XP 內部 COM 增益集編程實現》,採相同筆法,僅針對 Excel 與 PowerPoint 的差異點說明,配合前兩文可完整掌握 Office 全家桶增益集開發。範例執行效果如下:

Excel 2000 增益集效果

PowerPoint 2000 增益集效果

三大差異點

1. 類型庫匯入 (Stdafx.h)

Excel 2000:

#import "E:\\Program Files\\Microsoft Office\\Office\\mso9.dll" rename_namespace("Office")
using namespace Office;
#import "D:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA6\\VBE6EXT.olb" rename_namespace("VBE6")
using namespace VBE6;
// Excel 類型庫
#import "E:\\Program Files\\Microsoft Office\\Office\\EXCEL9.olb" \
    rename("RGB", "RGBEx"), rename("DialogBox", "DialogBoxEx"), \
    named_guids, rename_namespace("MSExcel")
using namespace MSExcel;

PowerPoint 2000:

#import "E:\\Program Files\\Microsoft Office\\Office\\mso9.dll" rename_namespace("Office")
using namespace Office;
#import "D:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA6\\VBE6EXT.olb" rename_namespace("VBE6")
using namespace VBE6;
// PowerPoint 類型庫
#import "E:\\Program Files\\Microsoft Office\\Office\\MSPPT9.OLB" named_guids, rename_namespace("MSPPT")
using namespace MSPPT;

2. 登錄腳本 (.rgs) 機碼路徑

Excel 2000:

HKCU
{
    Software { Microsoft { Office { Excel { Addins {
        'ExcelAddin.Excel2000Addin' {
            val FriendlyName = s 'Excel2000 Addin'
            val Description = s 'Excel2000增益集'
            val LoadBehavior = d '00000003'
            val CommandLineSafe = d '00000001'
        }
    } } } } } }

PowerPoint 2000:

HKCU
{
    Software { Microsoft { Office { PowerPoint { Addins {
        'PPTAddin.PowerPoint2000Addin' {
            val FriendlyName = s 'PowerPoint2000 Addin'
            val Description = s 'PowerPoint2000增益集'
            val LoadBehavior = d '00000003'
            val CommandLineSafe = d '00000001'
        }
    } } } } } }

3. 取得 CommandBars 方式不同 (無 ActiveExplorer)

Excel/PowerPoint 沒有 ActiveExplorer,直接從 _Application 取得 CommandBars:

Excel 2000:

CComQIPtr<MSExcel::_Application> spApp(Application);
HRESULT hr = spApp->get_CommandBars(&spCmdBars);

PowerPoint 2000:

CComQIPtr<MSPPT::_Application> spApp(Application);
HRESULT hr = spApp->get_CommandBars(&spCmdBars);

其餘工具列/按鈕/選單建立、事件處理邏輯與 Outlook/Word 版完全一致,請參考前兩文完整程式碼。

參考資源

  • Office 2000 內部 COM 增益集編程實現 — 徐景周
  • Word 2000/XP 內部 COM 增益集編程實現 — 徐景周
  • ATL 開發指南 (第二版) — Tom Armstrong & Ron Patton

本文配套 Excel 與 PowerPoint 兩套完整範例原始碼可供下載。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved