From d1b2fd91c8a840af4de15aec2280beb1ddacc96c Mon Sep 17 00:00:00 2001 From: "tbogard%aol.net" Date: Fri, 22 Oct 1999 02:36:35 +0000 Subject: [PATCH] Added building of the DLL. --- embedding/browser/build/makefile.win | 45 +++++++++ .../browser/build/nsWebBrowserModule.cpp | 94 +++++++++++++++++++ embedding/browser/makefile.win | 2 +- 3 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 embedding/browser/build/makefile.win create mode 100644 embedding/browser/build/nsWebBrowserModule.cpp diff --git a/embedding/browser/build/makefile.win b/embedding/browser/build/makefile.win new file mode 100644 index 00000000000..f7ed13fe274 --- /dev/null +++ b/embedding/browser/build/makefile.win @@ -0,0 +1,45 @@ +#!nmake +# +# The contents of this file are subject to the Netscape Public License +# Version 1.0 (the "NPL"); you may not use this file except in +# compliance with the NPL. You may obtain a copy of the NPL at +# http://www.mozilla.org/NPL/ +# +# Software distributed under the NPL is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL +# for the specific language governing rights and limitations under the +# NPL. +# +# The Initial Developer of this code under the NPL is Netscape +# Communications Corporation. Portions created by Netscape are +# Copyright (C) 1998 Netscape Communications Corporation. All Rights +# Reserved. + +DEPTH=..\..\.. + +MODULE=webbrwsr + + +MAKE_OBJ_TYPE = DLL +DLLNAME = webbrwsr +DLL=.\$(OBJDIR)\$(DLLNAME).dll + +LINCS=-I..\webBrowser -I..\setup + +CPP_OBJS= \ + .\$(OBJDIR)\nsWebBrowserModule.obj \ + $(NULL) + +# These are the libraries we need to link with to create the dll +LLIBS = \ + $(DIST)\lib\nsWebBrowser_s.lib \ + $(DIST)\lib\nsWebBrowserSetup_s.lib \ + $(DIST)\lib\xpcom.lib \ + $(LIBNSPR) + +include <$(DEPTH)\config\config.mak> +include <$(DEPTH)\config\rules.mak> + +install:: $(DLL) + $(MAKE_INSTALL) .\$(OBJDIR)\$(DLLNAME).dll $(DIST)\bin\components + $(MAKE_INSTALL) .\$(OBJDIR)\$(DLLNAME).lib $(DIST)\lib diff --git a/embedding/browser/build/nsWebBrowserModule.cpp b/embedding/browser/build/nsWebBrowserModule.cpp new file mode 100644 index 00000000000..6fe528bb57c --- /dev/null +++ b/embedding/browser/build/nsWebBrowserModule.cpp @@ -0,0 +1,94 @@ +/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Mozilla Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is the Mozilla browser. + * + * The Initial Developer of the Original Code is Netscape + * Communications, Inc. Portions created by Netscape are + * Copyright (C) 1999, Mozilla. All Rights Reserved. + * + * Contributor(s): + * Travis Bogard + */ + +#include "nsIGenericFactory.h" +#include "nsIComponentManager.h" +#include "nsIServiceManager.h" + +#include "nsWebBrowser.h" +#include "nsWebBrowserSetup.h" + +static NS_DEFINE_CID(kComponentManagerCID, NS_COMPONENTMANAGER_CID); +static NS_DEFINE_CID(kWebBrowserCID, NS_WEBBROWSER_CID); +static NS_DEFINE_CID(kWebBrowserSetupCID, NS_WEBBROWSER_SETUP_CID); + +//***************************************************************************** +//*** Library Exports +//***************************************************************************** + +extern "C" PR_IMPLEMENT(nsresult) +NSGetFactory(nsISupports* aServMgr, + const nsCID &aClass, + const char *aClassName, + const char *aProgID, + nsIFactory **aFactory) +{ + NS_ENSURE_ARG_POINTER(aFactory); + nsresult rv; + + nsIGenericFactory* fact; + + if(aClass.Equals(kWebBrowserCID)) + rv = NS_NewGenericFactory(&fact, nsWebBrowser::Create); + else if(aClass.Equals(kWebBrowserSetupCID)) + rv = NS_NewGenericFactory(&fact, nsWebBrowserSetup::Create); + else + rv = NS_NOINTERFACE; + + if(NS_SUCCEEDED(rv)) + *aFactory = fact; + return rv; +} + +extern "C" PR_IMPLEMENT(nsresult) +NSRegisterSelf(nsISupports* aServMgr , const char* aPath) +{ + nsresult rv; + NS_WITH_SERVICE1(nsIComponentManager, compMgr, aServMgr, kComponentManagerCID, &rv); + NS_ENSURE_SUCCESS(rv, rv); + + rv = compMgr->RegisterComponent(kWebBrowserCID, + "nsWebBrowser", + NS_WEBBROWSER_PROGID, + aPath, PR_TRUE, PR_TRUE); + rv = compMgr->RegisterComponent(kWebBrowserSetupCID, + "nsWebBrowserSetup", + NS_WEBBROWSER_SETUP_PROGID, + aPath, PR_TRUE, PR_TRUE); + NS_ENSURE_SUCCESS(rv, rv); + + return rv; +} + +extern "C" PR_IMPLEMENT(nsresult) +NSUnregisterSelf(nsISupports* aServMgr, const char* aPath) +{ + nsresult rv; + + NS_WITH_SERVICE1(nsIComponentManager, compMgr, aServMgr, kComponentManagerCID, &rv); + NS_ENSURE_SUCCESS(rv, rv); + rv = compMgr->UnregisterComponent(kWebBrowserCID, aPath); + rv = compMgr->UnregisterComponent(kWebBrowserSetupCID, aPath); + NS_ENSURE_SUCCESS(rv, rv); + + return rv; +} \ No newline at end of file diff --git a/embedding/browser/makefile.win b/embedding/browser/makefile.win index 0c754289cdc..9e154b9db32 100644 --- a/embedding/browser/makefile.win +++ b/embedding/browser/makefile.win @@ -21,6 +21,6 @@ DEPTH=..\.. -DIRS=webBrowser setup +DIRS=webBrowser setup build include <$(DEPTH)\config\rules.mak>