Crear un proceso en segundo plano con el icono de la bandeja del sistema

Estoy tratando de hacer una aplicación de Windows que verifique algunas cosas en el fondo, e informar al usuario a través de un icono de la bandeja del sistema.

La aplicación está hecha con No administrado C ++ y no hay opción para cambiar a .net o Java.

Si el usuario desea detener la aplicación, utilizará el icono de la bandeja.

La aplicación no puede ser un Servicio por el lado de la bandeja del sistema y porque debe ejecutarse sin instalar nada en la computadora del usuario (es un único .exe)

Usando la estructura típica del programa Win32 (RegisterClass, WndProc, etc.) no sé cómo puedo colocar un código para ejecutar el bucle de mensajes de la ventana. Tal vez tengo que usar CreateProcess () o CreateThread ()? ¿Es la forma correcta de manejar el entorno de subprocesos múltiples?

Si tengo que usar CreateProcess () / CreateThread (), ¿cómo puedo comunicarme entre los dos hilos?

Gracias ;)