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 ?
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.