[.NET 2] Service Windows

Je suis le spécialiste de la remise en question du « code qui marche », au grand malheur de mes supérieurs… J’ai donc plusieurs services Windows qui fonctionnent sur du .NET 2.0 actuellement, mais suite à un example sur MSDN mis à jour, je me pose des questions…

Le voici :
http://msdn2.microsoft.com/en-us/library/s…ase(VS.80).aspx

Ce code ne fonctionne pas… et pour cause :
http://msdn.microsoft.com/library/default…rvicestatus.asp

Bref il suffit juste de changer l’appel vers ça :

[DllImport("ADVAPI32.DLL", SetLastError = true)] public static extern bool SetServiceStatus(IntPtr hServiceStatus, ref SERVICE_STATUS lpServiceStatus);

Et là ça fonctionne mieux.

Seulement… à quoi ça sert cet appel natif ? :stuck_out_tongue:

Le statut du service n’est-il pas déjà défini lorsque le framework appelle les fameuses méthodes OnStart, OnStop, et j’en passe ?
De plus pourquoi, dans cet exemple, utilisent-ils SetServiceStatus que dans le OnStart, et pas dans les autres ?

Si vous avez un commencement de réponse, je suis preneur, et vous remercie d’avance.

Ca semble juste etre un exemple avec un appel inutil, a moins qu’il y ait eut un bug a un moment ou le status “Starting” etait pas mis correctement par la methode qui appelle le OnStart et que c’est un workaround pour ce bug ou quoi. Enfin je m’en soucierais pas plus que ca perso…

Ok je m’en soucie pas donc.
Merci.