You've already forked lazarus-ccr
94 lines
2.3 KiB
ObjectPascal
94 lines
2.3 KiB
ObjectPascal
![]() |
unit nsErrorUtils;
|
||
|
|
||
|
interface
|
||
|
|
||
|
uses
|
||
|
nsTypes;
|
||
|
|
||
|
function NS_GetErrorStringBundle(aErrorModule: PRInt16): AnsiString;
|
||
|
function NS_GetErrorStringBundleKey(aError: nsresult): AnsiString;
|
||
|
|
||
|
implementation
|
||
|
|
||
|
uses
|
||
|
nsInit, nsXPCOMGlue, nsXPCOM, nsConsts, nsError;
|
||
|
|
||
|
type
|
||
|
nsIErrorService = interface;
|
||
|
|
||
|
nsIErrorService = interface(nsISupports)
|
||
|
['{e72f94b2-5f85-11d4-9877-00c04fa0cf4a}']
|
||
|
function registerErrorStringBundle(
|
||
|
aErrorModule: PRInt16;
|
||
|
aStringBundleURL: PAnsiChar): nsresult; stdcall;
|
||
|
function unregisterErrorStringBundle(
|
||
|
aErrorModule: PRInt16): nsresult; stdcall;
|
||
|
function getErrorStringBundle(
|
||
|
aErrorModule: PRInt16;
|
||
|
out aResult: PAnsiChar): nsresult; stdcall;
|
||
|
function registerErrorStringBundleKey(
|
||
|
aError: nsresult;
|
||
|
aStringBundleKey: PAnsiChar): nsresult; stdcall;
|
||
|
function unregisterErrorStringBundleKey(
|
||
|
aError: nsresult): nsresult; stdcall;
|
||
|
function getErrorStringBundleKey(
|
||
|
aError: nsresult;
|
||
|
out aResult: PAnsiChar): nsresult; stdcall;
|
||
|
end;
|
||
|
|
||
|
const
|
||
|
NS_IERRORSERVICE_CID: TGUID = '{e72f94b2-5f85-11d4-9877-00c04fa0cf4a}';
|
||
|
NS_ERRORSERVICE_NAME = 'Error Service';
|
||
|
NS_ERRORSERVICE_CONTRACTID = '@mozilla.org/xpcom/error-service;1';
|
||
|
NS_ERRORSERVICE_CID: TGUID = '{744afd5e-5f8c-11d4-9877-00c04fa0cf4a}';
|
||
|
|
||
|
var
|
||
|
sErrorService: nsIErrorService = nil;
|
||
|
|
||
|
function ENSURE_ErrorService(): nsIErrorService;
|
||
|
var
|
||
|
es: nsIErrorService;
|
||
|
begin
|
||
|
if not Assigned(sErrorService) then
|
||
|
begin
|
||
|
try
|
||
|
NS_GetService(NS_ERRORSERVICE_CONTRACTID, nsIErrorService, es);
|
||
|
sErrorService := es;
|
||
|
except
|
||
|
end;
|
||
|
end;
|
||
|
Result := sErrorService;
|
||
|
end;
|
||
|
|
||
|
function NS_GetErrorStringBundle(aErrorModule: PRInt16): AnsiString;
|
||
|
var
|
||
|
es: nsIErrorService;
|
||
|
rv: nsresult;
|
||
|
str: PAnsiChar;
|
||
|
begin
|
||
|
es := ENSURE_ErrorService();
|
||
|
if Assigned(es) then
|
||
|
begin
|
||
|
rv := es.getErrorStringBundle(aErrorModule, str);
|
||
|
if NS_SUCCEEDED(rv) then
|
||
|
Result := str;
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
function NS_GetErrorStringBundleKey(aError: nsresult): AnsiString;
|
||
|
var
|
||
|
es: nsIErrorService;
|
||
|
rv: nsresult;
|
||
|
str: PAnsiChar;
|
||
|
begin
|
||
|
es := ENSURE_ErrorService();
|
||
|
if Assigned(es) then
|
||
|
begin
|
||
|
rv := es.getErrorStringBundleKey(aError, str);
|
||
|
if NS_SUCCEEDED(rv) then
|
||
|
Result := str;
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
end.
|