ouhla, ouhla,pbprint a écrit :@ZapMan
1. En règle générale, (selon ton code), la valeur du pointeur (*buffer=*X+*X/Y) doit servir d'adresse de stockage de l'information, mais, après plusieurs itérations, cette adresse se déplace d'1 octet vers la gauche, est-ce que vous pensez que ce déplacement a un rapport avec la capacité mémoire, ou un cas volontaire prévu pour les valeurs non unicodes?
...


Dans le cas étudié, la DataString est normalement assez court, puisqu'il ne contient que les noms des fichiers déplacés par Drag and Drop; Sa longueur devrait donc toujours être largement inférieure à 1000. J'ai mis cette limite de 1000 par prudence, au cas où quelque chose cloche dans l'enregistrement des données.pbprint a écrit : 2. Pourquoi le nbre d'octets est limité à 1000? Cette instruction est très claire :
[CopyMemory(*buffer,*buffer2,StringSize)], mais elle ne sera exécutée que si:
[ (nbzero = 2 Or limit>=1000 ], c'est à dire que la taille de notre DataString peut très bien être égale=1000. Je voudrais savoir pourquoi cette limite.
Je viens de faire une nouvelle mise à jour du code pour corriger un autre bug dans DataObject\Release. J'ai également enlevé le verrou dans "SetData" dont je parle dans un message précédent et j'ai simplement augmenté la taille des tableaux *dataobject\m_format[] et *dataobject\m_stgmed[] qui saturaient. C'est plus propre comme ça.