API GetDeviceUniqueID à la place de SysNumSérie() (signature nécessaire)

Posté par Chan le 8/1/2007 20:46:32
C'est avec un grand désagrément après avoir fait la mise à jour pour WinDev Mobile 11 que j'ai vu que "SysNumSérie()" (entre autres) nécessitait des exécutables et des dll signées pour fonctionner (ce n'était pas indiqué lors de la présentation et envois des pubs et c'est très ennuyeux pour le déboggage et cher).
J'utilise donc en remplacement la nouvelle API de Windows Mobile5 "GetDeviceUniqueID" pour fournir un numéro unique par device.
Mais cela ne fonctionne pas (voir code).
Voici des liens en C et VB pour comprendre l'API:
C'est une Api qui devrait aider bien des développeurs à protéger leurs applis et les limiter à un Pocket PC par licence.
http://msdn2.microsoft.com/en-us/library/ms893522.aspx
http://www.peterfoot.net/GetDeviceUniqueIDForVB.aspx
http://blogs.msdn.com/windowsmobile/archive/2006/01/09/510997.aspx
*************************
Code:

bufVarIn est un Buffer
bufVarIn="@^!MyAppName!^@"

bufVarOut est un Buffer sur 40
VarOut est un entier sans signe sur 4 octets
VarOut = Taille(bufVarOut)

Result est un entier

Result = API("coredll.dll","GetDeviceUniqueID",bufVarIn,Taille(bufVarIn),1,bufVarOut,VarOut)

Info(Result) //renvoie toujours le même code quelquesoit "bufVarIn"
Info(bufVarOut) // ne renvoie rien
Info(bufVarOut[[1 A 9]]) // ne renvoie rien
**********************
Si une âme charitable a une idée de l'erreur que je commets dans ce code
(Le service technique PC Soft m'a envoyé bouler ..., c'est sur, il n'ont pas à documenter des API Microsoft, mais bon SysNumSérie() est une des raisons qui m'ont fait passer à Windev Mobile 11.

Merci.

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=15&topic_id=4871&post_id=20188