Проблемы с копированием и вставкой в ​​Word 2010 и Windows 7 - PullRequest
0 голосов
/ 15 января 2010

У меня есть программа, которая может обмениваться данными с приложениями MS Office через буфер обмена.

Это отлично работает в 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 Неверный формат буфера обмена

Я попытался выполнить поиск в Интернете, но не нашел соответствующей информации. Любые советы / предложения будут с благодарностью приняты.

Спасибо.

1 Ответ

0 голосов
/ 08 февраля 2010

У меня похожая проблема в Office 2007 и Windows-server-2008, думаю, проблема не в офисе, а в Windows 7/2008. Вы запускаете свою программу в качестве службы? или как исполняемый файл? Я все еще жду ответа на мой вопрос здесь: Копирование и вставка из буфера обмена не работает в службе на Win Server 2008 / Vista 64bit

пожалуйста, дайте мне знать, если вы решили свою проблему!

Обновление: я обнаружил, что это проблема сессий. попробуйте выяснить, работает ли ваше приложение и приложение word / other office в одном сеансе (для этого попробуйте использовать проводник процессов).

...