X-Git-Url: https://git.decadent.org.uk/gitweb/?p=videolink.git;a=blobdiff_plain;f=null_prompt_service.cpp;h=68d6d9010a287cb6189cd93137afb4d54273afe7;hp=dca78103dbdb020e6cdaca48b2142e18b1395849;hb=HEAD;hpb=91d1e3608e3bb97adcd7bb9259f8771c22becd0f diff --git a/null_prompt_service.cpp b/null_prompt_service.cpp index dca7810..68d6d90 100644 --- a/null_prompt_service.cpp +++ b/null_prompt_service.cpp @@ -1,19 +1,23 @@ -// Copyright 2006 Ben Hutchings . +// Copyright 2006 Ben Hutchings . // See the file "COPYING" for licence details. +#include #include #include +#include "wchar_t_short.h" #include #include #include #include -#include +#include +#include #include +#include "wchar_t_default.h" #include "null_prompt_service.hpp" -#include "webdvd.hpp" +#include "videolink.hpp" #include "xpcom_support.hpp" using xpcom_support::check; @@ -36,18 +40,20 @@ namespace if (!iid.Equals(prompt_service_iid)) return NS_ERROR_NO_INTERFACE; - try + if (null_prompt_service * service = + new (std::nothrow) null_prompt_service) { - *result = new null_prompt_service; + service->AddRef(); + *result = service; return NS_OK; } - catch (std::bad_alloc &) + else { return NS_ERROR_OUT_OF_MEMORY; } } - NS_IMETHODIMP null_prompt_service_factory::LockFactory(PRBool lock) + NS_IMETHODIMP null_prompt_service_factory::LockFactory(PRBool /*lock*/) { return NS_ERROR_NOT_IMPLEMENTED; } @@ -190,10 +196,11 @@ void null_prompt_service::install() {0xb4, 0x6a, 0x25, 0xc0, 0xb3, 0x8, 0xcb, 0xd0} }; nsCOMPtr prompt_factory(new null_prompt_service_factory); - check(nsComponentManager::RegisterFactory( + nsCOMPtr comp_registrar; + check(NS_GetComponentRegistrar(getter_AddRefs(comp_registrar))); + check(comp_registrar->RegisterFactory( prompt_service_cid, "Prompt Service", "@mozilla.org/embedcomp/prompt-service;1", - prompt_factory, - PR_TRUE)); // replace existing + prompt_factory)); }