Pinky84
Messages postés24Date d'inscriptionsamedi 11 novembre 2000StatutMembreDernière intervention27 avril 2010
-
25 sept. 2005 à 19:07
Pinky84
Messages postés24Date d'inscriptionsamedi 11 novembre 2000StatutMembreDernière intervention27 avril 2010
-
27 sept. 2005 à 03:29
Lorsque que je coupe un fichier dans explorer et le colle dans mon app,
la copie de fait se fait parfaitement sauf qu'il me reste a dire a
l'explorer qu'il peut maintenant effacer le fichier en question. J'ai
vu qu'il faut faire quelque chose ressemblant à (le code est imcomplet):
Pinky84
Messages postés24Date d'inscriptionsamedi 11 novembre 2000StatutMembreDernière intervention27 avril 2010 25 sept. 2005 à 19:32
C'est ce que je veux savoir, comment remplis t-on ce FORMATETC. Sur
MSDN, il n'explique pas comment, tout ce que je sais c'est que cfFormat
doit etre RegisterClipboardFormat(CFSTR_PREFERREDDROPEFFECT);
Et puis j'aimerai aussi savoir comment faire pour:
// Verifier si le format CFSTR_PREFERREDDROPEFFECT égale DROPEFFECT_MOVE
// Si oui: appeller SetData avec le format CFSTR_PERFORMEDDROPEFFECT égale à DROPEFFECT_MOVE
Pinky84
Messages postés24Date d'inscriptionsamedi 11 novembre 2000StatutMembreDernière intervention27 avril 2010 26 sept. 2005 à 16:29
Comment faire pour signaler à l'explorer que l'on a 'Coller' des
fichiers que l'utilisateur avait précédemment 'Couper' dans l'explorer.
Car avec le code que j'ai écrit, tout ce qui se fait c'est la copie des
fichiers mais ne signale pas explorer qu'il a complèté l'opération donc
n'efface pas les fichiers.
Le code en question:
void OnMenu_EditPaste(HWND hWnd)
{
if (OpenClipboard(hWnd))
{
HDROP hData;
if (hData = (HDROP) GetClipboardData(CF_HDROP))
{
//IDataObject *pData = NULL;
Paste(hWnd, hData);
// maintenant il faut avertir explorer que l'opération est completée, mais comment ?!?
Coupe quelque fichier ensuite colle les dans ce programme, les fichier
sont bel et bien copier, mais explorer n'en est pas averti et n'efface
donc pas les fichiers.
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_satellite34
Messages postés688Date d'inscriptionmercredi 6 avril 2005StatutMembreDernière intervention 2 juin 20061 26 sept. 2005 à 16:40
essaye voir de le faire manuellement, désolé mais je ne programme pas sous windows, à mon gout, je récupererai le chemin de l'ancien fichier et je l'effacerai avec comme condition que la découpe est réussi, et tout ca manuellement;
Pinky84
Messages postés24Date d'inscriptionsamedi 11 novembre 2000StatutMembreDernière intervention27 avril 2010 26 sept. 2005 à 17:51
La partie où l'utilisateur coupe le ficheir c'est pas dans mon
programme, c'est dans Windows. Pour savoir si l'utilisateur a fait
couper je dois passer un FORMATETC à IDataObject::GetData et FORMATETC::cfFormat doit être RegisterClipboardFormat(CFSTR_PREFERREDDROPEFFECT).
Mais je ne sais pas quoi mettre au autre membre de la strcut et quand j'apelle GetData ce plante (Access violation reading location 0x00000000)
cs_satellite34
Messages postés688Date d'inscriptionmercredi 6 avril 2005StatutMembreDernière intervention 2 juin 20061 27 sept. 2005 à 03:19
je ne comprends pas le but de ton dev en fait !
Ne voudrais-tu pas que ton soft gére tout du début a la fin???
Pourquoi c'est windows qui dit s' occuper de la découpe????
Car si ton soft gérait tout ca tu n' aurai plus ce pb je pense;