DWORD
-ScmAssignNewTag(LPWSTR lpServiceGroup,
- LPDWORD lpdwTagId)
+ScmAssignNewTag(PSERVICE lpService)
{
/* FIXME */
- DPRINT("Assigning new tag in group %S\n", lpServiceGroup);
- *lpdwTagId = 0;
+ DPRINT("Assigning new tag to service %S\n", lpService->lpServiceName);
+ lpService->dwTag = 0;
return ERROR_SUCCESS;
}
if (lpdwTagId != NULL)
{
- dwError = ScmAssignNewTag(lpService->lpGroup->lpGroupName,
- &lpService->dwTag);
+ dwError = ScmAssignNewTag(lpService);
if (dwError != ERROR_SUCCESS)
goto done;
+
dwError = RegSetValueExW(hServiceKey,
L"Tag",
0,
sizeof(DWORD));
if (dwError != ERROR_SUCCESS)
goto done;
+
*lpdwTagId = lpService->dwTag;
}
wcscpy(lpService->lpDisplayName, lpDisplayName);
}
+ /* Assign the service to a group */
+ if (lpLoadOrderGroup != NULL && *lpLoadOrderGroup != 0)
+ {
+ dwError = ScmSetServiceGroup(lpService,
+ lpLoadOrderGroup);
+ if (dwError != ERROR_SUCCESS)
+ goto done;
+ }
+
+ /* Assign a new tag */
+ if (lpdwTagId != NULL)
+ {
+ dwError = ScmAssignNewTag(lpService);
+ if (dwError != ERROR_SUCCESS)
+ goto done;
+ }
+
/* Write service data to the registry */
/* Create the service key */
dwError = ScmCreateServiceKey(lpServiceName,
if (lpdwTagId != NULL)
{
- dwError = ScmAssignNewTag(lpService->lpGroup->lpGroupName,
- &lpService->dwTag);
- if (dwError != ERROR_SUCCESS)
- goto done;
dwError = RegSetValueExW(hServiceKey,
L"Tag",
0,