66 HKEY hRegSnd, hRegApp, hScheme, hSnd;
69 static const WCHAR wszSounds[] = {
'S',
'o',
'u',
'n',
'd',
's',0};
70 static const WCHAR wszDefault[] = {
'D',
'e',
'f',
'a',
'u',
'l',
't',0};
71 static const WCHAR wszKey[] = {
'A',
'p',
'p',
'E',
'v',
'e',
'n',
't',
's',
'\\',
72 'S',
'c',
'h',
'e',
'm',
'e',
's',
'\\',
74 static const WCHAR wszDotDefault[] = {
'.',
'D',
'e',
'f',
'a',
'u',
'l',
't',0};
75 static const WCHAR wszDotCurrent[] = {
'.',
'C',
'u',
'r',
'r',
'e',
'n',
't',0};
76 static const WCHAR wszNull[] = {0};
89 if (hmmio != 0)
return hmmio;
106 if (*
ptr ==
'.') *
ptr = 0;
120 if (
err != 0)
goto none;
123 if (
err != 0)
goto none;
136 if (
err != 0 || !*
str)
goto none;
138 if (hmmio)
return hmmio;
162 TRACE(
"Returning waveHdr=%lx\n", dwParam1);
166 ERR(
"Unknown uMsg=%d\n", uMsg);
204 if (*
p) *
p = (*p)->lpNext;
218 if (!wps)
return NULL;
230 if (!sound)
goto oom_error;
274 static const WCHAR wszWave[] = {
'W',
'A',
'V',
'E',0};
294 memset(&mminfo, 0,
sizeof(mminfo));
305 static const WCHAR wszSystemAsterisk[] = {
'S',
'y',
's',
't',
'e',
'm',
'A',
's',
't',
'e',
'r',
'i',
's',
'k',0};
306 static const WCHAR wszSystemDefault[] = {
'S',
'y',
's',
't',
'e',
'm',
'D',
'e',
'f',
'a',
'u',
'l',
't',0};
307 static const WCHAR wszSystemExclamation[] = {
'S',
'y',
's',
't',
'e',
'm',
'E',
'x',
'c',
'l',
'a',
'm',
'a',
't',
'i',
'o',
'n',0};
308 static const WCHAR wszSystemExit[] = {
'S',
'y',
's',
't',
'e',
'm',
'E',
'x',
'i',
't',0};
309 static const WCHAR wszSystemHand[] = {
'S',
'y',
's',
't',
'e',
'm',
'H',
'a',
'n',
'd',0};
310 static const WCHAR wszSystemQuestion[] = {
'S',
'y',
's',
't',
'e',
'm',
'Q',
'u',
'e',
's',
't',
'i',
'o',
'n',0};
311 static const WCHAR wszSystemStart[] = {
'S',
'y',
's',
't',
'e',
'm',
'S',
't',
'a',
'r',
't',0};
312 static const WCHAR wszSystemWelcome[] = {
'S',
'y',
's',
't',
'e',
'm',
'W',
'e',
'l',
'c',
'o',
'm',
'e',0};
320 wps->
pszSound = wszSystemExclamation;
331 else goto errCleanUp;
349 if (hmmio == 0)
goto errCleanUp;
354 TRACE(
"ParentChunk ckid=%.4s fccType=%.4s cksize=%08X\n",
365 TRACE(
"Chunk Found ckid=%.4s fccType=%08x cksize=%08X\n",
386 TRACE(
"Chunk Found ckid=%.4s fccType=%08x cksize=%08X\n",
425 if (
count < 1)
break;
433 else FIXME(
"Couldn't play header\n");
436 }
while (wps->
bLoop);
461 TRACE(
"pszSound='%p' hmod=%p fdwSound=%08X\n",
462 pszSound,
hmod, fdwSound);
559 TRACE(
"3.10 (Win95?)\n");
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define RegCloseKey(hKey)
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
#define HeapFree(x, y, z)
DWORD WINAPI GetModuleFileNameW(HINSTANCE hModule, LPWSTR lpFilename, DWORD nSize)
DWORD WINAPI SearchPathW(IN LPCWSTR lpPath OPTIONAL, IN LPCWSTR lpFileName, IN LPCWSTR lpExtension OPTIONAL, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart OPTIONAL)
BOOL WINAPI SetThreadPriority(IN HANDLE hThread, IN int nPriority)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
INT WINAPI GetProfileStringW(LPCWSTR section, LPCWSTR entry, LPCWSTR def_val, LPWSTR buffer, UINT len)
BOOL WINAPI FreeResource(HGLOBAL handle)
HRSRC WINAPI FindResourceW(HINSTANCE hModule, LPCWSTR name, LPCWSTR type)
LPVOID WINAPI LockResource(HGLOBAL handle)
HGLOBAL WINAPI LoadResource(HINSTANCE hModule, HRSRC hRsrc)
MMRESULT WINAPI mmioAscend(HMMIO hmmio, LPMMCKINFO lpck, UINT uFlags)
LONG WINAPI mmioSeek(HMMIO hmmio, LONG lOffset, INT iOrigin)
MMRESULT WINAPI mmioClose(HMMIO hmmio, UINT uFlags)
MMRESULT WINAPI mmioDescend(HMMIO hmmio, LPMMCKINFO lpck, const MMCKINFO *lpckParent, UINT uFlags)
LONG WINAPI mmioRead(HMMIO hmmio, HPSTR pch, LONG cch)
HMMIO WINAPI mmioOpenW(LPWSTR szFileName, MMIOINFO *lpmmioinfo, DWORD dwOpenFlags)
GLuint GLuint GLsizei GLenum type
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum GLuint GLenum GLsizei const GLchar * buf
GLenum GLuint GLsizei bufsize
#define WAVERR_STILLPLAYING
struct wavehdr_tag WAVEHDR
#define SND_ALIAS_SYSTEMEXCLAMATION
#define SND_ALIAS_SYSTEMSTART
#define SND_ALIAS_SYSTEMDEFAULT
#define SND_ALIAS_SYSTEMHAND
#define SND_ALIAS_SYSTEMEXIT
#define SND_ALIAS_SYSTEMWELCOME
#define mmioFOURCC(c0, c1, c2, c3)
#define SND_ALIAS_SYSTEMQUESTION
#define CALLBACK_FUNCTION
#define SND_ALIAS_SYSTEMASTERISK
static PEXPLICIT_ACCESSW *static HMODULE hmod
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeStringFromAsciiz(_Out_ PUNICODE_STRING Destination, _In_ PCSZ Source)
BOOL WINAPI sndPlaySoundW(LPCWSTR pszSound, UINT uFlags)
static WINE_PLAYSOUND * PlaySound_Alloc(const void *pszSound, HMODULE hmod, DWORD fdwSound, BOOL bUnicode)
static void CALLBACK PlaySound_Callback(HWAVEOUT hwo, UINT uMsg, DWORD_PTR dwInstance, DWORD_PTR dwParam1, DWORD_PTR dwParam2)
struct tagWINE_PLAYSOUND WINE_PLAYSOUND
static HMMIO get_mmioFromFile(LPCWSTR lpszName)
BOOL WINAPI PlaySoundW(LPCWSTR pszSoundW, HMODULE hmod, DWORD fdwSound)
UINT WINAPI mmsystemGetVersion(void)
static void PlaySound_Free(WINE_PLAYSOUND *wps)
static BOOL MULTIMEDIA_PlaySound(const void *pszSound, HMODULE hmod, DWORD fdwSound, BOOL bUnicode)
BOOL WINAPI sndPlaySoundA(LPCSTR pszSoundA, UINT uFlags)
static DWORD WINAPI proc_PlaySound(LPVOID arg)
BOOL WINAPI PlaySoundA(LPCSTR pszSoundA, HMODULE hmod, DWORD fdwSound)
static void PlaySound_WaitDone(struct playsound_data *s)
static WINE_PLAYSOUND * PlaySoundList
static HMMIO get_mmioFromProfile(UINT uFlags, LPCWSTR lpszName)
static BOOL PlaySound_IsString(DWORD fdwSound, const void *psz)
static unsigned __int64 next
struct tagWINE_PLAYSOUND * lpNext
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
VOID WINAPI DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
BOOL WINAPI DECLSPEC_HOTPATCH ResetEvent(IN HANDLE hEvent)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
#define THREAD_PRIORITY_TIME_CRITICAL
CRITICAL_SECTION WINMM_cs
UINT WINAPI waveOutReset(HWAVEOUT hWaveOut)
UINT WINAPI waveOutWrite(HWAVEOUT hWaveOut, LPWAVEHDR lpWaveOutHdr, UINT uSize)
UINT WINAPI waveOutUnprepareHeader(HWAVEOUT hWaveOut, LPWAVEHDR lpWaveOutHdr, UINT uSize)
MMRESULT WINAPI waveOutOpen(LPHWAVEOUT lphWaveOut, UINT uDeviceID, LPCWAVEFORMATEX lpFormat, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD dwFlags)
UINT WINAPI waveOutPrepareHeader(HWAVEOUT hWaveOut, WAVEHDR *lpWaveOutHdr, UINT uSize)
UINT WINAPI waveOutClose(HWAVEOUT hWaveOut)
#define HKEY_CURRENT_USER