none
如何使用VS2005 VC++ 建立專案import office2007元件 ?

    問題

  •  

    因為使用上需求一定要用VS2005 VC++控制Office2007, 所以想建立一個專案直接包含excel, powerpoint, word,
    使用_IDTExtensibility2測試可以載入Ribbon要用的xml後, 想再加上控制上述三個office程式時郤發生了問題,
    不知該如何解決, 有請各位幫忙解惑, 感激不盡...

    以下為 OnDisconnection時想針對excel, powerpoint, word開啟時, 去設定各別App
    (因為找不到如何判斷傳進來的 Application是屬於那個, 所以目前分別三個cpp去處理XD)
    STDMETHODIMP COfficeAddIn:nDisconnection(LPDISPATCH Application, ext_ConnectMode ConnectMode, LPDISPATCH AddInInst, SAFEARRAY * * custom)
    {
    #ifdef _DEBUGMSG
            OutputDebugString(_T("OnDisconnection"));    
    #endif


    CComQIPtr<Excel::_Application> excelApp(Application);

    return S_OK;
    }

    以下為stdafx.h 加入的import code:

    #import "C:\\Program Files\\Common Files\\Microsoft Shared\\OFFICE12\\mso.dll" \
    rename_namespace("Office"), named_guids, exclude("Pages")
    using namespace Office;

    #import "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA6\\VBE6EXT.olb" \
    rename_namespace("VBE6")
    using namespace VBE6;

    //Word
    #import "C:\\Program Files\\Microsoft Office\\OFFICE12\\MSWORD.OLB"  \
    rename("ExitWindows","wordExitWindows") \

    #import "C:\\Program Files\\Microsoft Office\\OFFICE12\\MSWORD.OLB" \
    rename_namespace("Word"), raw_interfaces_only, named_guids ,exclude("Pages")
    using namespace Word;

    //PowerPrint
    #import "C:\\Program Files\\Microsoft Office\\Office12\\MSPPT.OLB"  \
    rename("ExitWindows","pptExitWindows") \
    rename_namespace("PPT"), raw_interfaces_only, named_guids, exclude("Pages")
    using namespace PPT;

    //Excel
    #import "C:\\Program Files\\Microsoft Office\\Office12\\excel.exe" \
    rename("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") \
    rename("DocumentProperties", "DocumentPropertiesXL") exclude("IFont","IPicture") \
    rename_namespace("Excel")
    using namespace Excel;


    以下為ErrorMsg:
    Error    21    error C2872: 'Application' : ambiguous symbol    d:\myproject\trustoffice\trustoffice\stdafx.h    79   
    Error    28    error C2872: 'AddIn' : ambiguous symbol    d:\myproject\trustoffice\trustoffice\stdafx.h    79   
    Error    43    error C2872: 'ColorFormat' : ambiguous symbol    d:\myproject\trustoffice\trustoffice\stdafx.h    79   
    ......

    2008年4月14日 上午 10:06

所有回覆