Support building with WIN32_LEAN_AND_MEAN (#60)

- All Windows code now builds with WIN32_LEAN_AND_MEAN by default.
 - Header inclusion is adjusted as needed.
Remove use of UuidToString (#39)
 - Also breaks dependency on RpcStringFree and therefore rpcrt4.lib.
r=bryner

30f844cfc7


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@51 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
mmentovai 2006-10-26 18:06:43 +00:00
parent aa57b8e3de
commit 29401d2457
15 changed files with 171 additions and 52 deletions

View file

@ -27,11 +27,12 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <assert.h>
#include <ObjBase.h>
#include <cstdio>
#include "client/windows/handler/exception_handler.h"
#include "common/windows/guid_string.h"
namespace google_airbag {
@ -42,9 +43,9 @@ ExceptionHandler::ExceptionHandler(const wstring &dump_path,
void *callback_context,
bool install_handler)
: callback_(callback), callback_context_(callback_context),
dump_path_(dump_path), next_minidump_id_(NULL),
dbghelp_module_(NULL), minidump_write_dump_(NULL),
previous_handler_(current_handler_), previous_filter_(NULL) {
dump_path_(dump_path), dbghelp_module_(NULL),
minidump_write_dump_(NULL), previous_handler_(current_handler_),
previous_filter_(NULL) {
UpdateNextID();
dbghelp_module_ = LoadLibrary(L"dbghelp.dll");
if (dbghelp_module_) {
@ -61,9 +62,6 @@ ExceptionHandler::~ExceptionHandler() {
if (dbghelp_module_) {
FreeLibrary(dbghelp_module_);
}
if (next_minidump_id_) {
RpcStringFree(&next_minidump_id_);
}
if (current_handler_ == this) {
SetUnhandledExceptionFilter(previous_filter_);
current_handler_ = previous_handler_;
@ -95,7 +93,7 @@ bool ExceptionHandler::WriteMinidump(const wstring &dump_path,
bool ExceptionHandler::WriteMinidumpWithException(EXCEPTION_POINTERS *exinfo) {
wchar_t dump_file_name[MAX_PATH];
swprintf_s(dump_file_name, MAX_PATH, L"%s\\%s.dmp",
dump_path_.c_str(), next_minidump_id_);
dump_path_.c_str(), next_minidump_id_.c_str());
bool success = false;
if (minidump_write_dump_) {
@ -126,10 +124,7 @@ bool ExceptionHandler::WriteMinidumpWithException(EXCEPTION_POINTERS *exinfo) {
}
if (callback_) {
// This looks nasty, but RPC_WSTR is really just a wide string,
// and there are no "supported" ways to convert them other than casting.
callback_(reinterpret_cast<wchar_t*>(next_minidump_id_),
callback_context_, success);
callback_(next_minidump_id_, callback_context_, success);
}
// TODO(bryner): log an error on failure
@ -137,12 +132,9 @@ bool ExceptionHandler::WriteMinidumpWithException(EXCEPTION_POINTERS *exinfo) {
}
void ExceptionHandler::UpdateNextID() {
if (next_minidump_id_) {
RpcStringFree(&next_minidump_id_);
}
GUID id;
CoCreateGuid(&id);
UuidToString(&id, &next_minidump_id_);
next_minidump_id_ = GUIDString::GUIDToWString(&id);
}
} // namespace google_airbag