From e8285addc918bec79c7303f99cccf730987c2cac Mon Sep 17 00:00:00 2001 From: Thomas Bluemel Date: Wed, 28 Sep 2005 13:00:05 +0000 Subject: [PATCH] improved error handling svn path=/trunk/; revision=18134 --- reactos/subsys/system/sndvol32/misc.c | 2 - reactos/subsys/system/sndvol32/mixer.c | 2 - reactos/subsys/system/sndvol32/sndvol32.c | 129 ++++++++++++---------- reactos/subsys/system/sndvol32/sndvol32.h | 4 - 4 files changed, 68 insertions(+), 69 deletions(-) diff --git a/reactos/subsys/system/sndvol32/misc.c b/reactos/subsys/system/sndvol32/misc.c index e7816177b13..0cec222c65e 100644 --- a/reactos/subsys/system/sndvol32/misc.c +++ b/reactos/subsys/system/sndvol32/misc.c @@ -15,8 +15,6 @@ * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * VMware is a registered trademark of VMware, Inc. */ /* $Id$ * diff --git a/reactos/subsys/system/sndvol32/mixer.c b/reactos/subsys/system/sndvol32/mixer.c index aa171274313..eedcee81d63 100644 --- a/reactos/subsys/system/sndvol32/mixer.c +++ b/reactos/subsys/system/sndvol32/mixer.c @@ -15,8 +15,6 @@ * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * VMware is a registered trademark of VMware, Inc. */ /* $Id$ * diff --git a/reactos/subsys/system/sndvol32/sndvol32.c b/reactos/subsys/system/sndvol32/sndvol32.c index 5fc9905c119..903beee8fbe 100644 --- a/reactos/subsys/system/sndvol32/sndvol32.c +++ b/reactos/subsys/system/sndvol32/sndvol32.c @@ -15,8 +15,6 @@ * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * VMware is a registered trademark of VMware, Inc. */ /* $Id$ * @@ -115,8 +113,6 @@ PrefDlgAddLine(PSND_MIXER Mixer, { PrefContext->SelectedLine = Line->dwLineID; } - - DPRINT("!%ws cControls: %d\n", Line->szName, Line->cControls); } else goto AddToOthersLines; @@ -132,7 +128,6 @@ PrefDlgAddLine(PSND_MIXER Mixer, { PrefContext->SelectedLine = Line->dwLineID; } - DPRINT("!%ws cControls: %d\n", Line->szName, Line->cControls); } else goto AddToOthersLines; @@ -550,7 +545,7 @@ DeleteMixerWindowControls(PMIXER_WINDOW MixerWindow) { } -BOOL +static BOOL RebuildMixerWindowControls(PMIXER_WINDOW MixerWindow) { DeleteMixerWindowControls(MixerWindow); @@ -558,7 +553,7 @@ RebuildMixerWindowControls(PMIXER_WINDOW MixerWindow) return TRUE; } -LRESULT CALLBACK +static LRESULT CALLBACK MainWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, @@ -658,6 +653,7 @@ MainWindowProc(HWND hwnd, { DPRINT("Rebuilding mixer window controls failed!\n"); SndMixerDestroy(MixerWindow->Mixer); + MixerWindow->Mixer = NULL; Result = -1; } } @@ -770,14 +766,16 @@ CreateApplicationWindow(VOID) */ hWnd = NULL; - AllocAndLoadString(&lpErrMessage, - hAppInstance, - IDS_NOMIXERDEVICES); - MessageBox(NULL, - lpErrMessage, - lpAppTitle, - MB_ICONINFORMATION); - LocalFree(lpErrMessage); + if (AllocAndLoadString(&lpErrMessage, + hAppInstance, + IDS_NOMIXERDEVICES)) + { + MessageBox(NULL, + lpErrMessage, + lpAppTitle, + MB_ICONINFORMATION); + LocalFree(lpErrMessage); + } } if (hWnd == NULL) @@ -797,59 +795,68 @@ WinMain(HINSTANCE hInstance, int nCmdShow) { MSG Msg; + int Ret = 1; hAppInstance = hInstance; hAppHeap = GetProcessHeap(); - if (!InitAppConfig()) + if (InitAppConfig()) + { + /* load the application title */ + if (!AllocAndLoadString(&lpAppTitle, + hAppInstance, + IDS_SNDVOL32)) + { + lpAppTitle = NULL; + } + + InitCommonControls(); + + if (RegisterApplicationClasses()) + { + hMainWnd = CreateApplicationWindow(); + if (hMainWnd != NULL) + { + BOOL bRet; + while ((bRet =GetMessage(&Msg, + NULL, + 0, + 0)) != 0) + { + if (bRet != -1) + { + TranslateMessage(&Msg); + DispatchMessage(&Msg); + } + } + + DestroyWindow(hMainWnd); + Ret = 0; + } + else + { + DPRINT("Failed to creat application window (LastError: %d)!\n", GetLastError()); + } + + UnregisterApplicationClasses(); + } + else + { + DPRINT("Failed to register application classes (LastError: %d)!\n", GetLastError()); + } + + if (lpAppTitle != NULL) + { + LocalFree(lpAppTitle); + } + + CloseAppConfig(); + } + else { DPRINT("Unable to open the Volume Control registry key!\n"); - return 1; - } - - /* load the application title */ - if (AllocAndLoadString(&lpAppTitle, - hAppInstance, - IDS_SNDVOL32) == 0) - { - lpAppTitle = NULL; } - InitCommonControls(); - - if (!RegisterApplicationClasses()) - { - DPRINT("Failed to register application classes (LastError: %d)!\n", GetLastError()); - return 1; - } - - hMainWnd = CreateApplicationWindow(); - if (hMainWnd == NULL) - { - DPRINT("Failed to creat application window (LastError: %d)!\n", GetLastError()); - return 1; - } - - while (GetMessage(&Msg, - NULL, - 0, - 0)) - { - TranslateMessage(&Msg); - DispatchMessage(&Msg); - } - - DestroyWindow(hMainWnd); - - UnregisterApplicationClasses(); - - if (lpAppTitle != NULL) - { - LocalFree(lpAppTitle); - } - - CloseAppConfig(); - - return 0; + return Ret; } diff --git a/reactos/subsys/system/sndvol32/sndvol32.h b/reactos/subsys/system/sndvol32/sndvol32.h index f4d33dc5971..8ca5669bb4f 100644 --- a/reactos/subsys/system/sndvol32/sndvol32.h +++ b/reactos/subsys/system/sndvol32/sndvol32.h @@ -18,10 +18,6 @@ typedef struct _MIXER_WINDOW UINT SelectedLine; } MIXER_WINDOW, *PMIXER_WINDOW; -LRESULT CALLBACK MainWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); - -BOOL RebuildMixerWindowControls(PMIXER_WINDOW MixerWindow); - extern HINSTANCE hAppInstance; extern ATOM MainWindowClass; extern HWND hMainWnd;