{"id":19484554,"url":"https://github.com/flowerinthenight/base-atlcom-svc","last_synced_at":"2026-02-14T14:02:08.140Z","repository":{"id":73334314,"uuid":"78987125","full_name":"flowerinthenight/base-atlcom-svc","owner":"flowerinthenight","description":"Skeleton ATL COM Windows service.","archived":false,"fork":false,"pushed_at":"2017-01-15T21:17:44.000Z","size":72,"stargazers_count":1,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-28T19:45:12.554Z","etag":null,"topics":["atl","com","cpp","windows-service"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flowerinthenight.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-01-15T02:17:40.000Z","updated_at":"2019-01-18T01:36:20.000Z","dependencies_parsed_at":"2023-06-28T14:03:17.722Z","dependency_job_id":null,"html_url":"https://github.com/flowerinthenight/base-atlcom-svc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flowerinthenight%2Fbase-atlcom-svc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flowerinthenight%2Fbase-atlcom-svc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flowerinthenight%2Fbase-atlcom-svc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flowerinthenight%2Fbase-atlcom-svc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flowerinthenight","download_url":"https://codeload.github.com/flowerinthenight/base-atlcom-svc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249067767,"owners_count":21207395,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["atl","com","cpp","windows-service"],"created_at":"2024-11-10T20:22:49.916Z","updated_at":"2026-02-14T14:02:03.120Z","avatar_url":"https://github.com/flowerinthenight.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build status](https://ci.appveyor.com/api/projects/status/0ivg77ha322fam9u/branch/master?svg=true)](https://ci.appveyor.com/project/flowerinthenight/base-atlcom-svc/branch/master)\n\n# Overview\n\nSkeleton code for an ATL-based Windows service. Basically the same as a [traditional Windows service](https://github.com/flowerinthenight/win32-base-service) but with some advantages.\n\n* Can be started on-demand automatically by the first client call (via COM).\n* Clients can call service functions with parameters and return values using COM. In traditional services, clients normally communicate using service control codes and you need some kind of IPC (named pipes, shared memory, etc.) for bi-directional data exchange.\n\n### Installation\n\nRun the following in an elevated command prompt.\n\n```\nBaseAtlComSvc.exe /service\n```\n\nThis will install the service with a \"Manual\" startup type. You can start the service manually or by command prompt or from a client app.\n\n### Using the test client\n\nA client console app is provided to test the service. After the service is installed, run `testclient.exe` without arguments. This will query the service version (which is hardcoded to 1.0.0). The call will cause the service to start automatically (when it's not yet started).\n\n### Testing service notification\n\nThe service can also notify clients of events via IDispatch. To test, run `testclient.exe event`. The client will send a value to the service and in return, the service will notify the client of the received value. The call will also cause the service to start automatically (when it's not yet started).\n\n### Uninstallation\n\n```\nBaseAtlComSvc.exe /unregserver\n```\n\n### ETW trace\n\nThis project uses the ETW setup [here](https://github.com/flowerinthenight/win32-etw-manifest).\n\n# License\n\n[The MIT License](./LICENSE.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflowerinthenight%2Fbase-atlcom-svc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflowerinthenight%2Fbase-atlcom-svc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflowerinthenight%2Fbase-atlcom-svc/lists"}