I’m trying to use FMOD playback functionality from a Windows service program. The service runs just fine as long as a user is logged in. A problem arises when starting the service when no user is logged in (which of course is the basic incentive for creating a service in the first place).
In case of the latter FSOUND_Init fails with error FMOD_ERR_COOPERATIVELEVEL. My call looks like:
It makes no difference whether or not I use FSOUND_INIT_GLOBALFOCUS or 0. The service runs as the Local System account and is allowed to interact with the desktop.
When the service is not allowed to interact with the desktop it fails with the same error even when a user is logged in. I also tried to run the service as a user account in stead of the Local System account, however with no luck.
Is this due to a limitation of FMOD? If so, can it be removed? Otherwise, am I missing something?
I’m using FMOD 3.61 on Windows 2000. Thanx for your replies.
- kcarron asked 15 years ago
Makes sense. After all, an error about the “cooperative level” is a deep issue–as deep as DirectX itself. FMOD giving an error about the cooperative level points out that DSound initialization failed, preventing FMOD from going any further.
What I’m implementing is a background process – a service in Windows terms – playing sound files. The service is executing whether or not someone is currently logged in. So, I’m not trying to run a program in the logon screen.
Anyway, your suggestion seems to be all I needed. The service runs fine now using the FSOUND_OUTPUT_WINMM output mode. Thanx for you help.
- kcarron answered 15 years ago
Please login first to submit.