ReactOS  0.4.12-dev-36-g472787f
error.c File Reference
#include "regedit.h"
Include dependency graph for error.c:

Go to the source code of this file.

Functions

int ErrorMessageBox (HWND hWnd, LPCWSTR lpTitle, DWORD dwErrorCode,...)
 
int InfoMessageBox (HWND hWnd, UINT uType, LPCWSTR lpTitle, LPCWSTR lpMessage,...)
 

Function Documentation

◆ ErrorMessageBox()

int ErrorMessageBox ( HWND  hWnd,
LPCWSTR  lpTitle,
DWORD  dwErrorCode,
  ... 
)

Definition at line 24 of file error.c.

Referenced by error_code_messagebox(), ExportRegistryFile(), ImportRegistryFile(), LoadHive(), and UnloadHive().

25 {
26  int iRet = 0;
27  LPWSTR lpMsgBuf = NULL;
28  DWORD Status = 0;
29  va_list args;
30 
31  va_start(args, dwErrorCode);
32 
34  NULL,
35  dwErrorCode,
37  (LPWSTR)&lpMsgBuf,
38  0,
39  &args);
40 
41  va_end(args);
42 
43  iRet = MessageBoxW(hWnd, (Status && lpMsgBuf ? lpMsgBuf : L"Error displaying error message."), lpTitle, MB_OK | MB_ICONERROR);
44 
45  if (lpMsgBuf) LocalFree(lpMsgBuf);
46 
47  /* Return the MessageBoxW information */
48  return iRet;
49 }
#define LANG_NEUTRAL
Definition: nls.h:22
#define SUBLANG_DEFAULT
Definition: nls.h:168
DWORD WINAPI FormatMessageW(DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, LPWSTR lpBuffer, DWORD nSize, __ms_va_list *args)
Definition: format_msg.c:583
#define va_end(ap)
Definition: acmsvcex.h:90
#define FORMAT_MESSAGE_ALLOCATE_BUFFER
Definition: winbase.h:400
smooth NULL
Definition: ftsmooth.c:416
char * va_list
Definition: acmsvcex.h:78
#define FORMAT_MESSAGE_FROM_SYSTEM
Definition: winbase.h:404
int WINAPI MessageBoxW(_In_opt_ HWND, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_ UINT)
unsigned long DWORD
Definition: ntddk_ex.h:95
static const WCHAR L[]
Definition: oid.c:1087
#define MB_ICONERROR
Definition: winuser.h:781
Status
Definition: gdiplustypes.h:24
HLOCAL NTAPI LocalFree(HLOCAL hMem)
Definition: heapmem.c:1577
#define va_start(ap, A)
Definition: acmsvcex.h:91
#define MB_OK
Definition: winuser.h:784
TCHAR lpTitle[80]
Definition: ctm.c:67
#define MAKELANGID(p, s)
Definition: nls.h:15
WCHAR * LPWSTR
Definition: xmlstorage.h:184
#define args
Definition: format.c:66

◆ InfoMessageBox()

int InfoMessageBox ( HWND  hWnd,
UINT  uType,
LPCWSTR  lpTitle,
LPCWSTR  lpMessage,
  ... 
)

Definition at line 51 of file error.c.

Referenced by CreateNewKey(), ExportRegistryFile(), ImportRegistryFile(), PerformRegAction(), and ProcessCmdLine().

52 {
53  int iRet = 0;
54  LPWSTR lpMsgBuf = NULL;
55  va_list args;
56 
57  va_start(args, lpMessage);
58 
59  if (lpMessage)
60  {
61  SIZE_T strLen = _vscwprintf(lpMessage, args);
62 
63  /* Create a buffer on the heap and zero it out (LPTR) */
64  lpMsgBuf = (LPWSTR)LocalAlloc(LPTR, (strLen + 1) * sizeof(WCHAR));
65  if (lpMsgBuf)
66  {
67  _vsnwprintf(lpMsgBuf, strLen, lpMessage, args);
68  }
69  }
70 
71  va_end(args);
72 
73  iRet = MessageBoxW(hWnd, (lpMessage && lpMsgBuf ? lpMsgBuf : L"Error displaying info message."), lpTitle, uType);
74 
75  if (lpMsgBuf) LocalFree(lpMsgBuf);
76 
77  /* Return the MessageBoxW information */
78  return iRet;
79 }
#define WCHAR
Definition: msvc.h:43
#define va_end(ap)
Definition: acmsvcex.h:90
smooth NULL
Definition: ftsmooth.c:416
char * va_list
Definition: acmsvcex.h:78
int WINAPI MessageBoxW(_In_opt_ HWND, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_ UINT)
static const WCHAR L[]
Definition: oid.c:1087
ULONG_PTR SIZE_T
Definition: typedefs.h:78
_Check_return_ _CRTIMP int __cdecl _vscwprintf(_In_z_ _Printf_format_string_ const wchar_t *_Format, va_list _ArgList)
_CRTIMP int __cdecl _vsnwprintf(wchar_t *_Dest, size_t _Count, const wchar_t *_Format, va_list _Args)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
Definition: heapmem.c:1577
#define va_start(ap, A)
Definition: acmsvcex.h:91
TCHAR lpTitle[80]
Definition: ctm.c:67
#define LPTR
Definition: winbase.h:362
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
Definition: heapmem.c:1373
WCHAR * LPWSTR
Definition: xmlstorage.h:184
#define args
Definition: format.c:66