[commit] r1608 - in trunk/GME/Lib/CrashRpt: bin bin/x64 include lib lib/x64
GMESRC Repository Notifications
gme-commit at list.isis.vanderbilt.edu
Wed Oct 12 12:46:14 CDT 2011
Author: ksmyth
Date: Wed Oct 12 12:46:14 2011
New Revision: 1608
Log:
CrashRpt v1.2.10 x86 x64
Added:
trunk/GME/Lib/CrashRpt/bin/x64/
trunk/GME/Lib/CrashRpt/bin/x64/CrashRpt.dll
trunk/GME/Lib/CrashRpt/bin/x64/CrashRptd.dll
trunk/GME/Lib/CrashRpt/bin/x64/CrashSender.exe
trunk/GME/Lib/CrashRpt/bin/x64/CrashSenderd.exe
trunk/GME/Lib/CrashRpt/bin/x64/crashrpt_lang.ini (contents, props changed)
- copied, changed from r1607, trunk/GME/Lib/CrashRpt/bin/crashrpt_lang.ini
trunk/GME/Lib/CrashRpt/lib/x64/
trunk/GME/Lib/CrashRpt/lib/x64/CrashRpt.lib
trunk/GME/Lib/CrashRpt/lib/x64/CrashRptd.lib
Deleted:
trunk/GME/Lib/CrashRpt/bin/CrashRpt.pdb
trunk/GME/Lib/CrashRpt/bin/CrashSender.pdb
Modified:
trunk/GME/Lib/CrashRpt/bin/CrashRpt.dll
trunk/GME/Lib/CrashRpt/bin/CrashSender.exe
trunk/GME/Lib/CrashRpt/bin/crashrpt_lang.ini
trunk/GME/Lib/CrashRpt/include/CrashRpt.h
trunk/GME/Lib/CrashRpt/lib/CrashRpt.lib
Modified: trunk/GME/Lib/CrashRpt/bin/CrashRpt.dll
==============================================================================
Binary file (source and/or target). No diff available.
Modified: trunk/GME/Lib/CrashRpt/bin/CrashSender.exe
==============================================================================
Binary file (source and/or target). No diff available.
Modified: trunk/GME/Lib/CrashRpt/bin/crashrpt_lang.ini
==============================================================================
Binary file (source and/or target). No diff available.
Added: trunk/GME/Lib/CrashRpt/bin/x64/CrashRpt.dll
==============================================================================
Binary files /dev/null 00:00:00 1970 (empty, because file is newly added) and trunk/GME/Lib/CrashRpt/bin/x64/CrashRpt.dll Wed Oct 12 12:46:14 2011 (r1608) differ
Added: trunk/GME/Lib/CrashRpt/bin/x64/CrashRptd.dll
==============================================================================
Binary files /dev/null 00:00:00 1970 (empty, because file is newly added) and trunk/GME/Lib/CrashRpt/bin/x64/CrashRptd.dll Wed Oct 12 12:46:14 2011 (r1608) differ
Added: trunk/GME/Lib/CrashRpt/bin/x64/CrashSender.exe
==============================================================================
Binary files /dev/null 00:00:00 1970 (empty, because file is newly added) and trunk/GME/Lib/CrashRpt/bin/x64/CrashSender.exe Wed Oct 12 12:46:14 2011 (r1608) differ
Added: trunk/GME/Lib/CrashRpt/bin/x64/CrashSenderd.exe
==============================================================================
Binary files /dev/null 00:00:00 1970 (empty, because file is newly added) and trunk/GME/Lib/CrashRpt/bin/x64/CrashSenderd.exe Wed Oct 12 12:46:14 2011 (r1608) differ
Copied and modified: trunk/GME/Lib/CrashRpt/bin/x64/crashrpt_lang.ini (from r1607, trunk/GME/Lib/CrashRpt/bin/crashrpt_lang.ini)
==============================================================================
Binary file (source and/or target). No diff available.
Modified: trunk/GME/Lib/CrashRpt/include/CrashRpt.h
==============================================================================
--- trunk/GME/Lib/CrashRpt/include/CrashRpt.h Wed Oct 12 12:45:51 2011 (r1607)
+++ trunk/GME/Lib/CrashRpt/include/CrashRpt.h Wed Oct 12 12:46:14 2011 (r1608)
@@ -32,7 +32,7 @@
/*! \file CrashRpt.h
* \brief Defines the interface for the CrashRpt.DLL.
- * \date 2003-2010
+ * \date 2003-2011
* \author Michael Carruth
* \author zeXspectrum
*/
@@ -66,7 +66,7 @@
#define CRASHRPTAPI(rettype) CRASHRPT_EXTERNC rettype WINAPI
//! Current CrashRpt version
-#define CRASHRPT_VER 1207
+#define CRASHRPT_VER 1210
/*! \defgroup CrashRptAPI CrashRpt Functions */
/*! \defgroup DeprecatedAPI Obsolete Functions */
@@ -75,35 +75,36 @@
/*! \ingroup CrashRptAPI
* \brief Client crash callback function prototype
- * \param[in] lpvState Not used, always equals to NULL.
+ * \param[in] lpvState Currently not used, equals to NULL.
*
* \remarks
+ *
* The crash callback function is called when crash occurs. This way client application is
* notified about the crash.
*
* It is generally unsafe to do complex actions (e.g. memory allocation, heap operations) inside of this callback.
* The application state may be unstable.
+ *
+ * One reason the application may use this callback for is to close handles to open log files that the
+ * application plans to include into the error report. Log files should be accessible for reading, otherwise
+ * CrashRpt won't be able to include them into error report.
*
- * The crash callback function should return \c TRUE to allow generate error report. It should
- * return \c FALSE to prevent crash report generation.
+ * The crash callback function should typically return \c TRUE to allow generate error report.
+ * Returning \c FALSE will prevent crash report generation.
*
- * The following example shows how to use crash callback function.
+ * The following example shows how to use the crash callback function.
*
* \code
* // define the crash callback
* BOOL CALLBACK CrashCallback(LPVOID lpvState)
* {
- * // add custom log file to crash report
- * crAddFile2(
- * _T("C:\\Documents and Settings\\Application Data\\UserName\\MyApp\\Logs\\MyLog.txt"),
- * NULL,
- * _T("My custom log file"),
- * 0);
+ * // Do something...
*
* return TRUE;
* }
- *
* \endcode
+ *
+ * \sa crAddFile2()
*/
typedef BOOL (CALLBACK *LPGETLOGFILE) (__reserved LPVOID lpvState);
@@ -125,12 +126,11 @@
*
* \remarks
*
- * This function installs unhandled exception filter for all threads of calling process.
+ * This function installs SEH exception filter for the caller process.
* It also installs various C++ exception/error handlers. For the list of handlers,
* please see crInstall().
*
- * \a pfnCallback defines the callback function that is called on crash. The callback can be
- * used to add a custom file to crash report using AddFile() function. This parameter can be NULL.
+ * \a pfnCallback defines the callback function that is called on crash. This parameter can be NULL.
*
* \a pszEmailTo should be the valid email address of recipient.
*
@@ -190,8 +190,7 @@
*
* Call this function on application exit to uninstall all previously installed exception
* handlers.
- *
- * The \a lpState parameter is unused and should be NULL.
+ *
*/
CRASHRPTAPI(void)
@@ -204,7 +203,7 @@
*
* \param[in] lpState State information returned from Install(), ignored and should be NULL.
* \param[in] pszFile Fully qualified file name.
- * \param[in] pszDesc Description of file, used by Error Report Details dialog.
+ * \param[in] pszDesc Description of the file, used by the Error Report Details dialog.
*
* \deprecated
* This function is deprecated. It is still supported for compatiblity with
@@ -214,12 +213,9 @@
* \remarks
*
* This function can be called anytime after Install() to add one or more
- * files to the generated crash report. However, the recommended way is to
- * call this function in crash callback.
+ * files to the generated crash report.
*
- * \a pszFile should be a valid absolute path of a file to add to crash report. It
- * is recommended to add small files (several KB in size). If a large file is added,
- * the crash report sending procedure may fail.
+ * \a pszFile should be a valid absolute path of a file to add to crash report.
*
* \a pszDesc is a description of a file. It can be NULL.
*
@@ -275,8 +271,8 @@
*
* Call this function to manually generate a crash report.
*
- * The crash report contains the crash minidump, crash log in XML format and
- * additional optional files added with AddFile().
+ * The crash report contains the crash minidump, crash description in XML format and
+ * (optionally) additional files.
*
* \a pExInfo defines the exception pointers for generating crash minidump file.
* If \a pExInfo is NULL, current CPU state is used to create exception pointers.
@@ -295,21 +291,21 @@
#endif //_CRASHRPT_REMOVE_DEPRECATED
// Array indices for CR_INSTALL_INFO::uPriorities.
-#define CR_HTTP 0 //!< Send error report via HTTP connection.
-#define CR_SMTP 1 //!< Send error report via SMTP connection.
+#define CR_HTTP 0 //!< Send error report via HTTP (or HTTPS) connection.
+#define CR_SMTP 1 //!< Send error report via SMTP connection.
#define CR_SMAPI 2 //!< Send error report via simple MAPI (using default mail client).
//! Special priority constant that allows to skip certain delivery method.
#define CR_NEGATIVE_PRIORITY ((UINT)-1)
// Flags for CR_INSTALL_INFO::dwFlags
-#define CR_INST_STRUCTURED_EXCEPTION_HANDLER 0x1 //!< Install SEH handler (deprecated name, use \ref CR_INST_SEH_EXCEPTION_HANDLER instead.
-#define CR_INST_SEH_EXCEPTION_HANDLER 0x1 //!< Install SEH handler.
+#define CR_INST_STRUCTURED_EXCEPTION_HANDLER 0x1 //!< Install SEH handler (deprecated name, use \ref CR_INST_SEH_EXCEPTION_HANDLER instead).
+#define CR_INST_SEH_EXCEPTION_HANDLER 0x1 //!< Install SEH handler.
#define CR_INST_TERMINATE_HANDLER 0x2 //!< Install terminate handler.
#define CR_INST_UNEXPECTED_HANDLER 0x4 //!< Install unexpected handler.
#define CR_INST_PURE_CALL_HANDLER 0x8 //!< Install pure call handler (VS .NET and later).
#define CR_INST_NEW_OPERATOR_ERROR_HANDLER 0x10 //!< Install new operator error handler (VS .NET and later).
-#define CR_INST_SECURITY_ERROR_HANDLER 0x20 //!< Install security errror handler (VS .NET and later).
+#define CR_INST_SECURITY_ERROR_HANDLER 0x20 //!< Install security error handler (VS .NET and later).
#define CR_INST_INVALID_PARAMETER_HANDLER 0x40 //!< Install invalid parameter handler (VS 2005 and later).
#define CR_INST_SIGABRT_HANDLER 0x80 //!< Install SIGABRT signal handler.
#define CR_INST_SIGFPE_HANDLER 0x100 //!< Install SIGFPE signal handler.
@@ -318,12 +314,12 @@
#define CR_INST_SIGSEGV_HANDLER 0x800 //!< Install SIGSEGV signal handler.
#define CR_INST_SIGTERM_HANDLER 0x1000 //!< Install SIGTERM signal handler.
-#define CR_INST_ALL_EXCEPTION_HANDLERS 0 //!< Install all possible exception handlers.
-#define CR_INST_CRT_EXCEPTION_HANDLERS 0x1FFE //!< Install exception handlers for the linked CRT module.
+#define CR_INST_ALL_EXCEPTION_HANDLERS 0 //!< Install all possible exception handlers.
+#define CR_INST_CRT_EXCEPTION_HANDLERS 0x1FFE //!< Install exception handlers for the linked CRT module.
-#define CR_INST_NO_GUI 0x2000 //!< Do not show GUI, send report silently (use for non-GUI apps only).
-#define CR_INST_HTTP_BINARY_ENCODING 0x4000 //!< Use multi-part HTTP uploads with binary attachment encoding.
-#define CR_INST_DONT_SEND_REPORT 0x8000 //!< Don't send error report immediately, just save it locally.
+#define CR_INST_NO_GUI 0x2000 //!< Do not show GUI, send report silently (use for non-GUI apps only).
+#define CR_INST_HTTP_BINARY_ENCODING 0x4000 //!< Use multi-part HTTP uploads with binary attachment encoding.
+#define CR_INST_DONT_SEND_REPORT 0x8000 //!< Don't send error report immediately, just save it locally.
#define CR_INST_APP_RESTART 0x10000 //!< Restart the application on crash.
#define CR_INST_NO_MINIDUMP 0x20000 //!< Do not include minidump file to crash report.
#define CR_INST_SEND_QUEUED_REPORTS 0x40000 //!< CrashRpt should send error reports that are waiting to be delivered.
@@ -335,55 +331,84 @@
*
* \remarks
*
- * \a cb should always contain the size of this structure in bytes.
+ * \ref CR_INSTALL_INFOW and \ref CR_INSTALL_INFOA structures are wide-character and multi-byte character
+ * versions of \ref CR_INSTALL_INFO. \ref CR_INSTALL_INFO typedef defines character set independent mapping.
+ *
+ * \b cb [in, required]
+ *
+ * This must contain the size of this structure in bytes.
+ *
+ * \b pszAppName [in, optional]
+ *
+ * This is the friendly name of the client application. The application name is
+ * displayed in the Error Report dialog. If this parameter is NULL, the name of EXE file
+ * that was used to start caller process becomes the application name.
*
- * \a pszAppName is the friendly name of the client application. The application name is
- * displayed in Error Report dialog. If this parameter is NULL, the name of EXE file that was used to start caller
- * process becomes the application name.
+ * \b pszAppVersion [in, optional]
*
- * \a pszAppVersion should be the application version. Example: "1.0.1".
- * If it equals to NULL, product version is extracted from the executable file which started
- * the process and this product version is used as application version.
+ * Should be the application version. Example: "1.0.1".
+ *
+ * If this equals to NULL, product version is extracted from the executable file which started
+ * the caller process, and this product version is used as application version. If the executable file
+ * doesn's have a version info resource, the \ref crInstall() function will fail.
*
- * \a pszEmailTo is the email address of the recipient of error reports, for example
+ * \b pszEmailTo [in, optional]
+ *
+ * This is the email address of the recipient of error reports, for example
* "name at example.com". If this equals to NULL, the crash report won't be sent using E-mail client.
+ *
* Keep this NULL if you plan to use large error reports (more than several MB in size), because
- * large emails may be rejected by the mail server.
+ * large emails may be rejected by the mail server.
+ *
* To define a custom port for SMTP connection, use the following address format: "user at example.com:port",
* where \a port is the placeholder for the port number.
*
- * \a pszEmailSubject is the subject of the email message. If this parameter is NULL,
+ * \b pszEmailSubject [in, optional]
+ *
+ * This is the subject of the email message. If this parameter is NULL,
* the default subject of form '[app_name] [app_version] Error Report' is generated.
*
- * \a pszUrl is the URL of a server-side script that would receive crash report data via HTTP
- * connection. If this parmeter is NULL, HTTP connection won't be used to send crash reports. For
- * example of a server-side script that can receive crash report, see \ref sending_error_reports.
- * HTTP transport is the recommended way of sending large error reports (more than several MB in size).
- * To define a custom port for HTTP connection, use the following URL format: "http://example.com:port/crashrpt.php",
- * where \a port is the placeholder for the port number.
+ * \a pszUrl is the URL of a server-side script that would receive crash report data via HTTP or HTTPS
+ * connection. If this parmeter is NULL, HTTP(S) connection won't be used to send crash reports. For
+ * example of a server-side script that can receive crash reports, see \ref sending_error_reports.
+ *
+ * HTTP(S) transport is the recommended way of sending large error reports (more than several MB in size).
+ * To define a custom port for HTTP(S) connection, use the following URL format: "http://example.com[:port]/crashrpt.php" or
+ * "https://example.com[:port]/crashrpt.php", where optional \a port is the placeholder for the port number.
+ *
+ * \b pszCrashSenderPath [in, optional]
*
- * \a pszCrashSenderPath is the absolute path to the directory where CrashSender.exe is located.
+ * This is the absolute path to the directory where CrashSender.exe is located.
* The crash sender process is responsible for letting end user know about the crash and
- * sending the error report.
- * If this is NULL, it is assumed that CrashSender.exe is located in
+ * sending the error report. If this is NULL, it is assumed that CrashSender.exe is located in
* the same directory as CrashRpt.dll.
*
- * \a pfnCrashCallback is a pointer to the LPGETLOGFILE() crash callback function. The crash callback function is
- * called by CrashRpt when crash occurs and allows user to be notified.
- * If this is NULL, crash callback is not called.
- *
- * \a uPriorities is an array that defines the preferred ways of sending error reports.
- * The available ways are: HTTP connection, SMTP connection or simple MAPI (default mail client).
- * A priority is a non-negative integer number or special constant \ref CR_NEGATIVE_PRIORITY. The greater positive number defines the greater priority.
- * Specify the \ref CR_NEGATIVE_PRIORITY to skip the given way.
- * The element having index \ref CR_HTTP defines priority for using HTML connection.
- * The element having index \ref CR_SMTP defines priority for using SMTP connection.
- * The element having index \ref CR_SMAPI defines priority for using the default mail client.
- * The ways having greater priority will be tried first. If priorities are equal to each other, HTML
- * connection will be tried the first, SMTP connection will be tried the second and simple MAPI will be tried
- * the last.
+ * \b pfnCrashCallback [in, optional]
+ *
+ * This can be a pointer to the \ref LPGETLOGFILE() crash callback function. The crash callback function is
+ * called by CrashRpt when crash occurs and allows user to be notified.
+ * If this is NULL, crash callback function is not called.
+ *
+ * \b uPriorities [in, optional]
+ *
+ * This is an array that defines the preferred methods of sending error reports.
+ * The available methods are: HTTP (or HTTPS) connection, SMTP connection or simple MAPI (default mail client).
+ *
+ * A priority is a non-negative integer number or special constant \ref CR_NEGATIVE_PRIORITY.
+ * The greater positive number defines the greater priority.
+ * Specify the \ref CR_NEGATIVE_PRIORITY to skip the given way.
+ *
+ * The element having index \ref CR_HTTP defines priority for using HTML connection.
+ * The element having index \ref CR_SMTP defines priority for using SMTP connection.
+ * The element having index \ref CR_SMAPI defines priority for using the default mail client.
+ *
+ * The methods having greater priority will be tried first. If priorities are equal to each other, HTTP (or HTTPS)
+ * connection will be tried the first, SMTP connection will be tried the second and simple MAPI will be tried
+ * the last.
+ *
+ * \b dwFlags [in, optional]
*
- * <b>Since v1.1.2</b> \a dwFlags can be used to define some behavior parameters. This can be a combination of the following values:
+ * Since v1.1.2, \a dwFlags can be used to define behavior parameters. This can be a combination of the following values:
*
* <table>
* <tr><td colspan="2"> <i>Use the combination of the following constants to specify what exception handlers to install:</i>
@@ -396,7 +421,7 @@
* <tr><td> \ref CR_INST_SIGABRT_HANDLER <td> Install SIGABRT signal handler.
* <tr><td> \ref CR_INST_SIGINT_HANDLER <td> Install SIGINT signal handler.
* <tr><td> \ref CR_INST_SIGTERM_HANDLER <td> Install SIGTERM signal handler.
- * <tr><td colspan="2"> <i>Use the combination of the following constant to define behavior parameters:</i>
+ * <tr><td colspan="2"> <i>Use the combination of the following constants to define behavior parameters:</i>
* <tr><td> \ref CR_INST_NO_GUI
* <td> <b>Available since v.1.2.2</b> Do not show GUI.
*
@@ -404,7 +429,8 @@
* Use this only for services that have no GUI.
* <tr><td> \ref CR_INST_HTTP_BINARY_ENCODING
* <td> <b>Available since v.1.2.2</b> This affects the way of sending reports over HTTP.
- * By specifying this flag, you enable usage of multi-part HTTP uploads with binary encoding instead of the legacy way (Base64-encoded form data).
+ * By specifying this flag, you enable usage of multi-part HTTP uploads with binary encoding instead
+ * of the legacy way (Base64-encoded form data).
*
* It is recommended to always specify this flag, because it is more suitable for large error reports. The legacy way
* is supported for backwards compatibility and not recommended to use.
@@ -435,38 +461,63 @@
*
* </table>
*
- * <b>Since v1.1.2</b>, \a pszPrivacyPolicyURL defines the URL for the Privacy Policy hyperlink of the
- * Error Report dialog. If this parameter is NULL, the link is not displayed. For information on the Privacy Policy, see \ref error_report.
+ * \b pszPrivacyPolicyURL [in, optional]
*
- * <b>Since v1.2.1</b>, \a pszDebugHelpDLL parameter defines the location of the dbghelp.dll to load.
- * If this parameter is NULL, the dbghelp.dll is searched using the default search sequence.
+ * Since v1.1.2, this defines the URL for the Privacy Policy hyperlink of the
+ * Error Report dialog. If this parameter is NULL, the link is not displayed. For information on
+ * the Privacy Policy, see \ref error_report.
*
- * <b>Since v.1.2.1</b>, \a uMiniDumpType parameter defines the minidump type. For the list of available minidump
- * types, see the documentation for <b>MiniDumpWriteDump()</b> function in MSDN. It is recommended to set this
- * parameter with zero (equivalent of \b MiniDumpNormal constant). Other values may increase the minidump size significantly.
- * If you plan to use values other than zero, also specify the \ref CR_INST_HTTP_BINARY_ENCODING flag for \a dwFlags parameter.
+ * \b pszDebugHelpDLL [in, optional]
+ *
+ * Since v1.2.1, this parameter defines the location of the dbghelp.dll to load.
+ * If this parameter is NULL, the dbghelp.dll is searched using the default search sequence.
+ *
+ * \b uMiniDumpType [in, optional]
+ *
+ * Since v.1.2.1, this parameter defines the minidump type. For the list of available minidump
+ * types, see the documentation for the MiniDumpWriteDump() function in MSDN.
+
+ * It is recommended to set this
+ * parameter with zero (equivalent of MiniDumpNormal constant). Other values may increase the minidump size significantly.
+ * If you plan to use values other than zero, also specify the \ref CR_INST_HTTP_BINARY_ENCODING flag for \a dwFlags parameter.
+ *
+ * \b pszErrorReportSaveDir [in, optional]
*
- * <b>Since v.1.2.2</b>, \a pszErrorReportSaveDir parameter defines the directory where to save the error reports.
- * If this is NULL, the default directory is used (%%LOCAL_APP_DATA%\\CrashRpt\\UnsentCrashReports\\%%AppName%%_%%AppVersion%).
+ * Since v.1.2.2, this parameter defines the directory where to save the error reports.
+ * If this is NULL, the default directory is used (%%LOCAL_APP_DATA%\\CrashRpt\\UnsentCrashReports\\%%AppName%%_%%AppVersion%).
*
- * <b> Since v.1.2.4</b>, \a pszRestartCmdLine parameter defines the string that specifies the
- * command-line arguments for the application when it is restarted (when using \ref CR_INST_APP_RESTART flag). Do not include the name of
- * the executable in the command line; it is added automatically. This parameter can be NULL.
+ * \b pszRestartCmdLine [in, optional]
*
- * <b> Since v.1.2.4</b>, \a pszLangFilePath parameter defines the absolute path (including file name) for language file.
- * If this is NULL, the lang file is assumed to be located in the same dir as \b CrashSender.exe file and have the name \b crashrpt_lang.ini.
+ * Since v.1.2.4, parameter defines the string that specifies the
+ * command-line arguments for the application when it is restarted (when using \ref CR_INST_APP_RESTART flag). Do not include the name of
+ * the executable in the command line; it is added automatically. This parameter can be NULL.
+ *
+ * \b pszLangFilePath [in, optional]
+ *
+ * Since v.1.2.4, this parameter defines the absolute path (including file name) for language file.
+ * If this is NULL, the lang file is assumed to be located in the same dir as CrashSender.exe file and have the name crashrpt_lang.ini.
*
- * <b> Since v.1.2.4</b>, \a pszEmailText parameter defines the custom E-mail text that is used when deliverying error report
- * as E-mail. If this is NULL, the default E-mail text is used. It is recommended to set this parameter with NULL.
+ * \b pszEmailText [in, optional]
+ *
+ * Since v.1.2.4, this parameter defines the custom E-mail text that is used when deliverying error report
+ * as E-mail. If this is NULL, the default E-mail text is used. It is recommended to set this parameter with NULL.
*
- * <b> Since v.1.2.4</b>, \a pszSmtpProxy parameter defines the network address and port formatted as "IP:port" to use as SMTP proxy. Example: "192.168.1.1:2525".
- * If this is NULL, the SMTP server address is resolved using the MX record of sender's or recipient's mailbox. You should typically set this parameter with NULL, except in the
- * case when your software is a server and custom SMTP configuration is required.
+ * \b pszSmtpProxy [in, optional]
+ *
+ * Since v.1.2.4, this parameter defines the network address and port formatted as "IP:port" to use as SMTP proxy. Example: "192.168.1.1:2525".
+ * If this is NULL, the SMTP server address is resolved using the MX record of sender's or recipient's mailbox. You should typically set this parameter with NULL, except in the
+ * case when your software is a server and custom SMTP configuration is required.
*
- * \note
+ * \b pszCustomSenderIcon [in, optional]
*
- * \ref CR_INSTALL_INFOW and \ref CR_INSTALL_INFOA structures are wide-character and multi-byte character
- * versions of \ref CR_INSTALL_INFO. \ref CR_INSTALL_INFO typedef defines character set independent mapping.
+ * Since v.1.2.8, this parameter can be used to define a custom icon for <i>Error Report</i> dialog.
+ * The value of this parameter should be absolute address to the image containing the icon resource, followed by resource identifier separated by comma.
+ * You can set this parameter with NULL to use the default icon.
+ *
+ * The resource identifier is a zero-based index of the icon to retrieve. For example, if this value is 0, the first icon in the specified file is used.
+ * If the identifier is a negative number not equal to -1, the icon in the specified file whose resource identifier is equal to the absolute value of the resource identifier is used.
+ * Example: "D:\MyApp\Resources.dll, -128".
+ *
*
*/
@@ -490,6 +541,7 @@
LPCWSTR pszLangFilePath; //!< Path to the language file (including file name).
LPCWSTR pszEmailText; //!< Custom E-mail text (used when deliverying report as E-mail).
LPCWSTR pszSmtpProxy; //!< Network address and port to be used as SMTP proxy.
+ LPCWSTR pszCustomSenderIcon; //!< Custom icon used for Error Report dialog.
}
CR_INSTALL_INFOW;
@@ -520,6 +572,7 @@
LPCSTR pszLangFilePath; //!< Path to the language file (including file name).
LPCSTR pszEmailText; //!< Custom E-mail text (used when deliverying report as E-mail).
LPCSTR pszSmtpProxy; //!< Network address and port to be used as SMTP proxy.
+ LPCSTR pszCustomSenderIcon; //!< Custom icon used for Error Report dialog.
}
CR_INSTALL_INFOA;
@@ -537,12 +590,12 @@
#endif // UNICODE
/*! \ingroup CrashRptAPI
- * \brief Installs exception handlers for all threads of the caller process.
+ * \brief Installs exception handlers for the caller process.
*
* \param[in] pInfo General information.
*
* \remarks
- * This function installs unhandled exception filter for all threads of the caller process.
+ * This function installs unhandled exception filter for the caller process.
* It also installs various CRT exception/error handlers that function for all threads of the caller process.
* For more information, see \ref exception_handling
*
@@ -562,11 +615,11 @@
* The \a pInfo parameter contains all required information needed to install CrashRpt.
*
* This function fails when \a pInfo->pszCrashSenderPath doesn't contain valid path to CrashSender.exe
- * or when \a pInfo->pszCrashSenderPath is equal to NULL, but CrashSender.exe is not located in the
- * directory where CrashRpt.dll located.
+ * or when \a pInfo->pszCrashSenderPath is equal to NULL, but \b CrashSender.exe is not located in the
+ * directory where \b CrashRpt.dll located.
*
- * On crash, the crash minidump file is created, which contains CPU and
- * stack state information. Also XML file is created that contains additional
+ * On crash, the crash minidump file is created, which contains CPU information and
+ * stack trace information. Also XML file is created that contains additional
* information that may be helpful for crash analysis. These files along with several additional
* files added with crAddFile2() are packed to a single ZIP file.
*
@@ -576,8 +629,7 @@
*
* The error report can be sent over E-mail using address and subject passed to the
* function as \ref CR_INSTALL_INFO structure members. Another way of sending error report is an HTTP
- * request using \a pszUrl member of \ref CR_INSTALL_INFO. If both the E-mail address and
- * URL are not specified, this function fails.
+ * request using \a pszUrl member of \ref CR_INSTALL_INFO.
*
* This function may fail if an appropriate language file (\b crashrpt_lang.ini) is not found
* in the directory where the \b CrashSender.exe file is located.
@@ -629,8 +681,8 @@
* handlers previously installed with crInstall(). After function call, the exception handlers
* are restored to states they had before calling crInstall().
*
- * This function fails if crInstall() wasn't previously called in context of
- * current process.
+ * This function fails if crInstall() wasn't previously called in context of the
+ * caller process.
*
* When this function fails, use crGetLastErrorMsg() to retrieve the error message.
*
@@ -669,34 +721,10 @@
* Call crUninstallFromCurrentThread() to uninstall C++ exception handlers from
* current thread.
*
- * The crInstallToCurrentThread2() function gives better control of what exception
- * handlers to install.
- *
- * The following example shows how to use crInstallToCurrentThread() and crUninstallFromCurrentThread().
- *
- * \code
- *
- * DWORD WINAPI ThreadProc(LPVOID lpParam)
- * {
- * // Install exception handlers
- * crInstallToCurrentThread();
- *
- * // Your code...
- *
- * // Uninstall exception handlers
- * crUninstallFromCurrentThread();
- *
- * return 0;
- * }
- *
- * // .. Create a thread
- * DWORD dwThreadId = 0;
- * HANDLE hWorkingThread = CreateThread(NULL, 0,
- * ThreadProc, (LPVOID)NULL, 0, &dwThreadId);
- *
- * \endcode
+ * This function is deprecatd. The crInstallToCurrentThread2() function gives
+ * better control of what exception handlers to install.
*
- * \sa crInstallToCurrentThread(), crInstallToCurrentThread2(),
+ * \sa crInstallToCurrentThread2(),
* crUninstallFromCurrentThread(), CrThreadAutoInstallHelper
*/
@@ -716,12 +744,11 @@
* several execution threads, you ought to call the function for each thread,
* except the main one.
*
- * The function works the same way as crInstallToCurrentThread(), but provides
+ * The function works the same way as obsolete crInstallToCurrentThread(), but provides
* an ability to select what exception handlers to install.
*
* \a dwFlags defines what exception handlers to install. Use zero value
- * to install all possible exception
- * handlers. Or use a combination of the following constants:
+ * to install all possible exception handlers. Or use a combination of the following constants:
*
* - \ref CR_INST_TERMINATE_HANDLER Install terminate handler
* - \ref CR_INST_UNEXPECTED_HANDLER Install unexpected handler
@@ -759,14 +786,13 @@
*
* \remarks
*
- * This function unsets C++ exception handlers for the caller thread. If you have
+ * This function unsets exception handlers from the caller thread. If you have
* several execution threads, you ought to call the function for each thread.
* After calling this function, the exception handlers for current thread are
- * replaced with the handlers that were before call of crInstallToCurrentThread2()
- * (or crInstallToCurrentThread()).
+ * replaced with the handlers that were before call of crInstallToCurrentThread2().
+ *
+ * This function fails if crInstallToCurrentThread2() wasn't called for current thread.
*
- * This function fails if crInstallToCurrentThread() (or crInstallToCurrentThread2())
- * wasn't called for current thread.
* When this function fails, use crGetLastErrorMsg() to retrieve the error message.
*
* No need to call this function for the main execution thread. The crUninstall()
@@ -788,22 +814,22 @@
* \param[in] pszDesc File description (used in Error Report Details dialog).
*
* \note
- * This function is deprecated. It is recommended to use crAddFile2() function instead.
+ * This function is deprecated and will be removed in one of the future releases. It is recommended to use crAddFile2() function instead.
*
* This function can be called anytime after crInstall() to add one or more
* files to the generated crash report.
*
* When this function is called, the file is marked to be added to the error report,
* then the function returns control to the caller.
- * When crash occurs, all marked files are added to the report. If a file is locked by someone
- * for exclusive access, the file won't be included. In \ref LPGETLOGFILE crash callback,
- * ensure files to be included are not locked.
+ * When crash occurs, all marked files are added to the report by the \b CrashSender.exe process.
+ * If a file is locked by someone for exclusive access, the file won't be included. Inside of \ref LPGETLOGFILE crash callback,
+ * ensure files to be included are acessible for reading.
*
* \a pszFile should be a valid absolute path of a file to add to crash report.
*
* \a pszDesc is a description of a file. It can be NULL.
*
- * Function fails if \a pszFile doesn't exist at the moment of function call.
+ * This function fails if \a pszFile doesn't exist at the moment of function call.
*
* The crAddFileW() and crAddFileA() are wide-character and multibyte-character
* versions of crAddFile() function. The crAddFile() macro defines character set
@@ -851,21 +877,21 @@
*
* \return This function returns zero if succeeded.
*
- * \param[in] pszFile Absolute path to the file to add.
- * \param[in] pszDestFile Destination file name.
- * \param[in] pszDesc File description (used in Error Report Details dialog).
- * \param[in] dwFlags Flags.
+ * \param[in] pszFile Absolute path to the file to add, required.
+ * \param[in] pszDestFile Destination file name, optional.
+ * \param[in] pszDesc File description (used in Error Report Details dialog), optional.
+ * \param[in] dwFlags Flags, optional.
*
* This function can be called anytime after crInstall() to add one or more
* files to the generated crash report.
*
* When this function is called, the file is marked to be added to the error report,
* then the function returns control to the caller.
- * When crash occurs, all marked files are added to the report.
+ * When crash occurs, all marked files are added to the report by the \b CrashSender.exe process.
+ * If a file is locked by someone for exclusive access, the file won't be included. Inside of \ref LPGETLOGFILE crash callback,
+ * close open file handles and ensure files to be included are acessible for reading.
*
- * \a pszFile should be a valid absolute path of a file to add to crash report. It
- * is recommended to add small files (several KB in size). If a large file is added,
- * the crash report sending procedure may fail.
+ * \a pszFile should be a valid absolute path of a file to add to crash report.
*
* \a pszDestFile should be the name of destination file. This parameter can be used
* to specify different file name for the file in ZIP archive. If this parameter is NULL, the pszFile
@@ -874,16 +900,19 @@
* \a pszDesc is a literal description of a file. It can be NULL.
*
* \a dwFlags parameter defines the behavior of the function. This can be a combination of the following flags:
- * - \ref CR_AF_TAKE_ORIGINAL_FILE On crash, the CrashSender.exe will try to locate the file from its original location. This behavior is the default one.
- * - \ref CR_AF_MAKE_FILE_COPY On crash, the CrashSender.exe will make a copy of the file and save it to the error report folder.
+ * - \ref CR_AF_TAKE_ORIGINAL_FILE On crash, the \b CrashSender.exe will try to locate the file from its original location. This behavior is the default one.
+ * - \ref CR_AF_MAKE_FILE_COPY On crash, the \b CrashSender.exe will make a copy of the file and save it to the error report folder.
*
* - \ref CR_AF_FILE_MUST_EXIST The function will fail if file doesn't exist at the moment of function call (the default behavior).
* - \ref CR_AF_MISSING_FILE_OK Do not fail if file is missing (assume it will be created later).
*
- * If your file is not huge, specify the \ref CR_AF_MAKE_FILE_COPY as \a dwFlags parameter value. This will
+ * If you do not use error report delivery (\ref CR_INST_DONT_SEND_REPORT flag) or if you use postponed error report delivery
+ * (if you specify \ref CR_INST_SEND_QUEUED_REPORTS flag)
+ * you must also specify the \ref CR_AF_MAKE_FILE_COPY as \a dwFlags parameter value. This will
* guarantee that a snapshot of your file at the moment of crash is taken and saved to the error report folder.
*
- * This function fails if \a pszFile doesn't exist at the moment of function call, unless you specify \ref CR_AF_MISSING_FILE_OK flag.
+ * This function fails if \a pszFile doesn't exist at the moment of function call,
+ * unless you specify \ref CR_AF_MISSING_FILE_OK flag.
*
* The crAddFile2W() and crAddFile2A() are wide-character and multibyte-character
* versions of crAddFile2() function. The crAddFile2() macro defines character set
@@ -925,32 +954,55 @@
// Flags for crAddScreenshot function.
-#define CR_AS_VIRTUAL_SCREEN 0 //!< Take a screenshot of the virtual screen.
-#define CR_AS_MAIN_WINDOW 1 //!< Take a screenshot of application main window.
+#define CR_AS_VIRTUAL_SCREEN 0 //!< Take a screenshot of the virtual screen.
+#define CR_AS_MAIN_WINDOW 1 //!< Take a screenshot of application's main window.
+#define CR_AS_PROCESS_WINDOWS 2 //!< Take a screenshot of all visible process windows.
+#define CR_AS_GRAYSCALE_IMAGE 4 //!< Make a grayscale image instead of a full-color one.
+#define CR_AS_USE_JPEG_FORMAT 8 //!< Store screenshots as JPG files.
/*! \ingroup CrashRptAPI
* \brief Adds a screenshot to the crash report.
*
- * \return This function returns zero if succeeded.
+ * \return This function returns zero if succeeded. Use crGetLastErrorMsg() to retrieve the error message on fail.
*
- * \param[in] dwFlags Flags.
+ * \param[in] dwFlags Flags, optional.
*
* \remarks
*
- * This function can be used to make a screenshot at the moment of crash and add
- * the screenshot to the error report. Call this function inside of \ref LPGETLOGFILE crash callback.
+ * This function can be used to take a screenshot at the moment of crash and add it to the error report.
+ * Screenshot information may help the developer to better understand the state of the application
+ * at the moment of crash and reproduce the error.
+ *
+ * When this function is called, screenshot flags are saved,
+ * then the function returns control to the caller.
+ * When crash occurs, screenshot is made by the \b CrashSender.exe process and added to the report.
*
- * \a dwFlags can be one of the following:
- * - \ref CR_AS_VIRTUAL_SCREEN Use this to take a screenshot of the desktop (virtual screen).
- * - \ref CR_AS_MAIN_WINDOW Use this to take a screenshot of the application's main window.
- *
- * Screenshots are added in form of PNG files. When capturing entire desktop consisting of several monitors,
- * one screenshot file is added per each monitor.
- *
- * You should be carefull when using this feature, because screenshots may contain user-identifying
- * or private information. Always specify the purposes you will use the collected
- * information for in your Privacy Policy. Typically, the screenshot is not a required information to
- * debug the crash, however sometimes it may be useful.
+ * \b dwFlags
+ *
+ * Use one of the following constants to specify what part of virtual screen to capture:
+ * - \ref CR_AS_VIRTUAL_SCREEN Use this to take a screenshot of the whole desktop (virtual screen).
+ * - \ref CR_AS_MAIN_WINDOW Use this to take a screenshot of the application's main window.
+ * - \ref CR_AS_PROCESS_WINDOWS Use this to take a screenshot of all visible windows that belong to the process.
+ *
+ * The main application window is a window that has a caption (\b WS_CAPTION), system menu (\b WS_SYSMENU) and
+ * the \b WS_EX_APPWINDOW extended style. If CrashRpt doesn't find such window, it considers the first found process window as
+ * the main window.
+ *
+ * Screenshots are added in form of PNG files by default. You can specify the \ref CR_AS_USE_JPEG_FORMAT flag to save
+ * screenshots as JPEG files instead.
+ *
+ * In addition, you can specify the \ref CR_AS_GRAYSCALE_IMAGE flag to make a grayscale screenshot
+ * (by default color image is made). Grayscale image gives smaller file size.
+ *
+ * If you use JPEG image format, you may better use the \ref crAddScreenshot2() function, that allows to
+ * define JPEG image quality.
+ *
+ * When capturing entire desktop consisting of several monitors,
+ * one screenshot file is added per each monitor.
+ *
+ * You should be careful when using this feature, because screenshots may contain user-identifying
+ * or private information. Always specify purposes you will use collected
+ * information for in your Privacy Policy.
*
* \sa
* crAddFile2()
@@ -962,12 +1014,67 @@
);
/*! \ingroup CrashRptAPI
- * \brief Adds a string property to the crash report.
+ * \brief Adds a screenshot to the crash report.
*
- * \return This function returns zero if succeeded.
+ * \return This function returns zero if succeeded. Use crGetLastErrorMsg() to retrieve the error message on fail.
*
- * \param[in] pszPropName Name of the property.
- * \param[in] pszPropValue Value of the property.
+ * \param[in] dwFlags Flags, optional.
+ * \param[in] nJpegQuality Defines the JPEG image quality, optional.
+ *
+ * \remarks
+ *
+ * This function can be used to take a screenshot at the moment of crash and add it to the error report.
+ * Screenshot information may help the developer to better understand state of the application
+ * at the moment of crash and reproduce the error.
+ *
+ * When this function is called, screenshot flags are saved, then the function returns control to the caller.
+ * When crash occurs, screenshot is made by the \b CrashSender.exe process and added to the report.
+ *
+ * \b dwFlags
+ *
+ * Use one of the following constants to specify what part of virtual screen to capture:
+ * - \ref CR_AS_VIRTUAL_SCREEN Use this to take a screenshot of the whole desktop (virtual screen).
+ * - \ref CR_AS_MAIN_WINDOW Use this to take a screenshot of the main application main window.
+ * - \ref CR_AS_PROCESS_WINDOWS Use this to take a screenshot of all visible windows that belong to the process.
+ *
+ * The main application window is a window that has a caption (\b WS_CAPTION), system menu (\b WS_SYSMENU) and
+ * the \b WS_EX_APPWINDOW extended style. If CrashRpt doesn't find such window, it considers the first found process window as
+ * the main window.
+ *
+ * Screenshots are added in form of PNG files by default. You can specify the \ref CR_AS_USE_JPEG_FORMAT flag to save
+ * screenshots as JPEG files instead.
+ *
+ * If you use JPEG format, you can use the \a nJpegQuality parameter to define the JPEG image quality.
+ * This should be the number between 0 and 100, inclusively. The bigger the number, the better the quality and the bigger the JPEG file size.
+ * If you use PNG file format, this parameter is ignored.
+ *
+ * In addition, you can specify the \ref CR_AS_GRAYSCALE_IMAGE flag to make a grayscale screenshot
+ * (by default color image is made). Grayscale image gives smaller file size.
+ *
+ * When capturing entire desktop consisting of several monitors,
+ * one screenshot file is added per each monitor.
+ *
+ * You should be careful when using this feature, because screenshots may contain user-identifying
+ * or private information. Always specify purposes you will use collected
+ * information for in your Privacy Policy.
+ *
+ * \sa
+ * crAddFile2()
+ */
+
+CRASHRPTAPI(int)
+crAddScreenshot2(
+ DWORD dwFlags,
+ int nJpegQuality
+ );
+
+/*! \ingroup CrashRptAPI
+ * \brief Adds a string property to the crash report.
+ *
+ * \return This function returns zero if succeeded. Use crGetLastErrorMsg() to retrieve the error message on fail.
+ *
+ * \param[in] pszPropName Name of the property, required.
+ * \param[in] pszPropValue Value of the property, required.
*
* \remarks
*
@@ -1016,28 +1123,32 @@
/*! \ingroup CrashRptAPI
* \brief Adds a registry key dump to the crash report.
*
- * \return This function returns zero if succeeded.
+ * \return This function returns zero if succeeded. Use crGetLastErrorMsg() to retrieve the error message on fail.
*
* \param[in] pszRegKey Registry key to dump, required.
* \param[in] pszDstFileName Name of the destination file, required.
- * \param[in] dwFlags Flags.
+ * \param[in] dwFlags Flags, reserved.
*
* \remarks
*
* Use this function to add a dump of a Windows registry key into the crash report. This function
* is available since v.1.2.6.
*
- * The \a pszRegKey parameter must be the name of the registry key.
- * The content of the key specified by the \a pszRegKey parameter will be stored in human-readable XML
- * format and included into the error report as \a pszDstFileName file.
+ * The \a pszRegKey parameter must be the name of the registry key. The key name should begin with "HKEY_CURRENT_USER"
+ * or "HKEY_LOCAL_MACHINE". Other root keys are not supported.
+ *
+ * The content of the key specified by the \a pszRegKey parameter will be stored in a human-readable XML
+ * format and included into the error report as \a pszDstFileName destination file. You can dump multiple registry keys
+ * to the same destination file.
*
* The \a dwFlags parameter is reserved for future use and should be set to zero.
*
- * The following example shows how to dump two registry keys to regkey.xml file:
+ * The following example shows how to dump two registry keys to \b regkey.xml file:
+ *
* \code
*
- * crAddRegKey(_T("HKEY_CURRENT_USER\\Software\\MyApp"), _T("regkey.xml"));
- * crAddRegKey(_T("HKEY_LOCAL_MACHINE\\Software\\MyApp"), _T("regkey.xml"));
+ * crAddRegKey(_T("HKEY_CURRENT_USER\\Software\\MyApp"), _T("regkey.xml"), 0);
+ * crAddRegKey(_T("HKEY_LOCAL_MACHINE\\Software\\MyApp"), _T("regkey.xml"), 0);
*
* \endcode
*
@@ -1072,7 +1183,6 @@
#define crAddRegKey crAddRegKeyA
#endif //UNICODE
-
// Exception types
#define CR_WIN32_STRUCTURED_EXCEPTION 0 //!< SEH exception (deprecated name, use \ref CR_SEH_EXCEPTION instead).
#define CR_SEH_EXCEPTION 0 //!< SEH exception.
@@ -1091,48 +1201,66 @@
/*! \ingroup CrashRptStructs
- * \brief Extended exception info used by crGenerateErrorReport().
+ *
+ * This structure defines the information needed to generate crash minidump file and
+ * provide the developer with other information about the error. This structure is used by
+ * the crGenerateErrorReport() function.
*
- * \remarks
+ * \b cb [in]
*
- * This structure contains essential information needed to generate crash minidump file and
- * provide the developer with other information about the error.
+ * This must contain the size of this structure in bytes.
*
- * \a cb must contain the size of this structure in bytes.
+ * \b pexcptrs [in, optional]
*
- * \a pexcptrs should contain the exception pointers. If this parameter is NULL,
- * the current CPU state is used to generate exception pointers.
+ * Should contain the exception pointers. If this parameter is NULL,
+ * the current CPU state is used to generate exception pointers.
*
- * \a exctype is the type of exception. This value can be used for crash report classification on developers' side.
- * This parameter may be one of the following:
+ * \b exctype [in]
+ *
+ * The type of exception. This parameter may be one of the following:
* - \ref CR_SEH_EXCEPTION SEH (Structured Exception Handling) exception
* - \ref CR_CPP_TERMINATE_CALL C++ terminate() function call
* - \ref CR_CPP_UNEXPECTED_CALL C++ unexpected() function call
- * - \ref CR_CPP_PURE_CALL Pure virtual method call (Visual Studio .NET 2003 and later)
- * - \ref CR_CPP_NEW_OPERATOR_ERROR C++ 'new' operator error (Visual Studio .NET 2003 and later)
- * - \ref CR_CPP_SECURITY_ERROR Buffer overrun (Visual Studio .NET 2003 only)
- * - \ref CR_CPP_INVALID_PARAMETER Invalid parameter error (Visual Studio 2005 and later)
- * - \ref CR_CPP_SIGABRT C++ SIGABRT signal
- * - \ref CR_CPP_SIGFPE C++ floating point exception
- * - \ref CR_CPP_SIGILL C++ illegal instruction
- * - \ref CR_CPP_SIGINT C++ SIGINT signal
- * - \ref CR_CPP_SIGSEGV C++ invalid storage access
- * - \ref CR_CPP_SIGTERM C++ termination request
- *
- * \a code is used if \a exctype is \ref CR_SEH_EXCEPTION and represents the SEH exception code.
- * If \a pexptrs is NULL, this value is used when generating exception information for initializing
- * \c pexptrs->ExceptionRecord->ExceptionCode member, otherwise it is ignored.
- *
- * \a fpe_subcode is used if \a exctype is equal to \ref CR_CPP_SIGFPE. It defines the floating point
- * exception subcode (see \c signal() function ducumentation in MSDN).
- *
- * \a expression, \a function, \a file and \a line are used when \a exctype is \ref CR_CPP_INVALID_PARAMETER.
- * These members are typically non-zero when using debug version of CRT.
- *
- * <b>Since v.1.2.4</b>, \a bManual parameter should be equal to TRUE if the report is generated manually.
- * The value of \a bManual parameter affects the automatic application restart behavior. If the application
- * restart is requested by the \ref CR_INST_APP_RESTART flag of CR_INSTALL_INFO::dwFlags structure member, and if \a bManual is FALSE, the application will be
- * restarted after error report generation. If \a bManual is TRUE, the application won't be restarted.
+ * - \ref CR_CPP_PURE_CALL Pure virtual method call (Visual Studio .NET 2003 and later)
+ * - \ref CR_CPP_NEW_OPERATOR_ERROR C++ 'new' operator error (Visual Studio .NET 2003 and later)
+ * - \ref CR_CPP_SECURITY_ERROR Buffer overrun (Visual Studio .NET 2003 only)
+ * - \ref CR_CPP_INVALID_PARAMETER Invalid parameter error (Visual Studio 2005 and later)
+ * - \ref CR_CPP_SIGABRT C++ SIGABRT signal
+ * - \ref CR_CPP_SIGFPE C++ floating point exception
+ * - \ref CR_CPP_SIGILL C++ illegal instruction
+ * - \ref CR_CPP_SIGINT C++ SIGINT signal
+ * - \ref CR_CPP_SIGSEGV C++ invalid storage access
+ * - \ref CR_CPP_SIGTERM C++ termination request
+ *
+ * \b code [in, optional]
+ *
+ * Used if \a exctype is \ref CR_SEH_EXCEPTION and represents the SEH exception code.
+ * If \a pexptrs is NULL, this value is used when generating exception information for initializing
+ * \c pexptrs->ExceptionRecord->ExceptionCode member, otherwise it is ignored.
+ *
+ * \b fpe_subcode [in, optional]
+ *
+ * Used if \a exctype is equal to \ref CR_CPP_SIGFPE. It defines the floating point
+ * exception subcode (see \c signal() function ducumentation in MSDN).
+ *
+ * \b expression, \b function, \b file and \b line [in, optional]
+ *
+ * These parameters are used when \a exctype is \ref CR_CPP_INVALID_PARAMETER.
+ * These members are typically non-zero when using debug version of CRT.
+ *
+ * \b bManual [in]
+ *
+ * Since v.1.2.4, \a bManual parameter should be equal to TRUE if the report is generated manually.
+ * The value of \a bManual parameter affects the automatic application restart behavior. If the application
+ * restart is requested by the \ref CR_INST_APP_RESTART flag of CR_INSTALL_INFO::dwFlags structure member,
+ * and if \a bManual is FALSE, the application will be
+ * restarted after error report generation. If \a bManual is TRUE, the application won't be restarted.
+ *
+ * \b hSenderProcess [out]
+ *
+ * As of v.1.2.8, \a hSenderProcess parameter will contain the handle to the <b>CrashSender.exe</b> process when
+ * \ref crGenerateErrorReport function returns. The caller may use this handle to wait until <b>CrashSender.exe</b>
+ * process exits and check the exit code.
*/
typedef struct tagCR_EXCEPTION_INFO
@@ -1147,6 +1275,7 @@
const wchar_t* file; //!< File in which assertion happened.
unsigned int line; //!< Line number.
BOOL bManual; //!< Flag telling if the error report is generated manually or not.
+ HANDLE hSenderProcess; //!< Handle to the CrashSender.exe process.
}
CR_EXCEPTION_INFO;
@@ -1202,7 +1331,7 @@
);
-/*! \ingroup CrashRptAPI
+/*! \ingroup DeprecatedAPI
* \brief Can be used as a SEH exception filter.
*
* \return This function returns \c EXCEPTION_EXECUTE_HANDLER if succeeds, else \c EXCEPTION_CONTINUE_SEARCH.
@@ -1211,7 +1340,9 @@
* \param[in] ep Exception pointers.
*
* \remarks
- *
+ *
+ * As of v.1.2.8, this function is declared deprecated. It may be removed in one of the future releases.
+ *
* This function can be called instead of a SEH exception filter
* inside of __try{}__except(Expression){} statement. The function generates a error report
* and returns control to the exception handler block.
@@ -1417,13 +1548,13 @@
public:
//! Installs exception handlers to the caller process
- CrAutoInstallHelper(PCR_INSTALL_INFOA pInfo)
+ CrAutoInstallHelper(__in PCR_INSTALL_INFOA pInfo)
{
m_nInstallStatus = crInstallA(pInfo);
}
//! Installs exception handlers to the caller process
- CrAutoInstallHelper(PCR_INSTALL_INFOW pInfo)
+ CrAutoInstallHelper(__in PCR_INSTALL_INFOW pInfo)
{
m_nInstallStatus = crInstallW(pInfo);
}
Modified: trunk/GME/Lib/CrashRpt/lib/CrashRpt.lib
==============================================================================
Binary file (source and/or target). No diff available.
Added: trunk/GME/Lib/CrashRpt/lib/x64/CrashRpt.lib
==============================================================================
Binary files /dev/null 00:00:00 1970 (empty, because file is newly added) and trunk/GME/Lib/CrashRpt/lib/x64/CrashRpt.lib Wed Oct 12 12:46:14 2011 (r1608) differ
Added: trunk/GME/Lib/CrashRpt/lib/x64/CrashRptd.lib
==============================================================================
Binary files /dev/null 00:00:00 1970 (empty, because file is newly added) and trunk/GME/Lib/CrashRpt/lib/x64/CrashRptd.lib Wed Oct 12 12:46:14 2011 (r1608) differ
More information about the gme-commit
mailing list