Un code sur lequel je travaille utilise COleDataSource::CacheGlobalData
, en passant comme CF_TEXT un HGLOBAL pointant sur de la mémoire allouée au texte. Je veux également ajouter une valeur numérique, afin que la cible drop-access puisse accéder au texte ou aux valeurs numériques.COleDataSource - Définition des données de glisser-déposer entre les applications
Comment cela peut-il être fait facilement? Un 2ème appel CacheGlobalData peut-il être effectué avec une valeur CF_ différente? Et puisque je veux seulement passer un entier (DWORD), puis-je éviter d'avoir à allouer un HGLOBAL désordonné?
Ou dois-je encoder toutes les données que je veux envoyer dans un seul morceau de mémoire? CacheGlobalData permet-il seulement d'attacher un objet à l'événement drag?
Donc, il n'y a pas de type intégré pour passer un seul DWORD? Cela semble vraiment étrange, cela permettrait d'économiser beaucoup de tracas lorsque vous voulez simplement passer une carte d'identité. J'imagine que vous pouvez utiliser le handle HGlobal pour transmettre une seule valeur DWORD. Je ne pense pas que ce soit une bonne idée, mais y a-t-il une raison pour que ça ne marche pas? –
D'autres programmes seraient induits en erreur (par votre déclaration de format) pour croire qu'il s'agit d'un handle de mémoire et leur déplacement pourrait provoquer un comportement inattendu. Vous n'avez pas de code source pour eux, donc vous ne savez pas si tous vérifient l'intégrité des données avant de traiter le glisser. –