2010-01-15 156 views
0

我有一個程序能夠通過剪貼板與MS Office應用程序交換數據。使用Word 2010和Windows 7複製和粘貼問題

這工作在Office 2007和Windows Vista/XP罰款,但沒有使用Office 2010/Windows 7的

IDataObject *d = NULL; 
    HRESULT hr = ::OleGetClipboard(&d); 
    if (hr == S_OK) 
    { 
     FORMATETC formatEtc; 
     formatEtc.cfFormat = ::RegisterClipboardFormat("Native"); 
     formatEtc.ptd = NULL; 
     formatEtc.dwAspect = DVASPECT_CONTENT; 
     formatEtc.lindex = -1; 


     STGMEDIUM stgMedium; 
     hr = d->QueryGetData(&formatEtc); 

接着電話,我返回了一個錯誤 - 0x8004006a無效的剪貼板格式

我已嘗試搜索網頁,但沒有找到任何相關信息。任何意見/建議將受到感謝。

謝謝。

回答

0

我在Office 2007和Windows服務器2008中有類似的問題,我猜這個問題不是辦公室,而是Windows 7/2008。你是否將你的程序作爲服務運行?或可執行文件? 我仍在等待我的問題在這裏的答案: Clipboard Copy-Paste doesn't work in a service on Win Server 2008/Vista 64bit

請讓我知道如果你已經解決了你的問題!

更新:我發現這是一個會話問題。試着找出你的應用和單詞/其他辦公應用是否在同一個會話中運行(嘗試使用進程管理器)。