2010-01-15 3 views
0

J'ai un programme qui est capable d'échanger des données avec les applications MS Office, via le presse-papiers.Copier et coller des problèmes avec Word 2010 et Windows 7

Cela fonctionne très bien dans Office 2007 et Windows Vista/XP, mais échoue avec 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); 

Suite à cet appel, je suis retourné une erreur - 0x8004006a format presse-papier non valide

I J'ai essayé de chercher sur le Web, mais je n'ai trouvé aucune information pertinente. Tous les conseils/suggestions seraient les bienvenus.

Merci.

Répondre

0

J'ai un problème similaire dans Office 2007 et Windows-server-2008, je suppose que le problème n'est pas le bureau mais Windows 7/2008. exécutez-vous votre programme en tant que service? ou un comme exécutable? J'attends toujours une réponse pour ma question ici: Clipboard Copy-Paste doesn't work in a service on Win Server 2008/Vista 64bit

s'il vous plaît laissez-moi savoir si vous avez résolu votre problème!

Mise à jour: j'ai découvert qu'il s'agit d'un problème de session. essayez de savoir si votre application et le mot/autre application de bureau s'exécute dans la même session (essayez d'utiliser l'explorateur de processus pour cela).

Questions connexes