rem: .createInstance(Components.interfaces.nsIAddressBook) 
add: .getService(Components.interfaces.nsIAddressBook) 
context: function AbExport(){  try {    var selectedABURI = GetSelectedDirectory();    if (!selectedABURI) return;        var directory = GetDirectoryFromURI(selectedABURI);    Components.classes["@mozilla.org/addressbook;1"]              .createInstance(Components.interfaces.nsIAddressBook)              .exportAddressBook(window, directory);  }  catch (ex) {    var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);    if (promptService) {      var message;      switch (ex.result) {        case Components.results.NS_ERROR_FILE_ACCESS_DENIED:          message = gAddressBookBundle.getString("failedToExportMessageFileAccessDenied");          break;        case Components.results.NS_ERROR_FILE_NO_DEVICE_SPACE:          message = gAddressBookBundle.getString("failedToExportMessageNoDeviceSpace");          break;        default:          message = ex.message;          break;      }      promptService.alert(window,        gAddressBookBundle.getString("failedToExportTitle"),         message);    }  }}
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/9421/7bedc789ce4693f8b68d8f9969c41b7272a65e21/addressbook.js/buggy/mailnews/addrbook/resources/content/addressbook.js