diff --git a/docshell/build/makefile.win b/docshell/build/makefile.win new file mode 100644 index 00000000000..e195a7434bb --- /dev/null +++ b/docshell/build/makefile.win @@ -0,0 +1,44 @@ +#!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=docshell + + +MAKE_OBJ_TYPE = DLL +DLLNAME = docshell +DLL=.\$(OBJDIR)\$(DLLNAME).dll + +LINCS=-I..\base -I..\html + +CPP_OBJS= \ + .\$(OBJDIR)\nsDocShellModule.obj \ + $(NULL) + +# These are the libraries we need to link with to create the dll +LLIBS = \ + $(DIST)\lib\htmldocshell_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/docshell/build/nsDocShellModule.cpp b/docshell/build/nsDocShellModule.cpp new file mode 100644 index 00000000000..fb414a4a2f3 --- /dev/null +++ b/docshell/build/nsDocShellModule.cpp @@ -0,0 +1,85 @@ +/* -*- 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 "nsHTMLDocShell.h" + +static NS_DEFINE_CID(kComponentManagerCID, NS_COMPONENTMANAGER_CID); +static NS_DEFINE_CID(kHTMLDocShellCID, NS_HTML_DOCSHELL_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(kHTMLDocShellCID)) + rv = NS_NewGenericFactory(&fact, nsHTMLDocShell::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(kHTMLDocShellCID, + "nsHTMLDocShell", + NS_HTML_DOCSHELL_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(kHTMLDocShellCID, aPath); + NS_ENSURE_SUCCESS(rv, rv); + + return rv; +} \ No newline at end of file diff --git a/docshell/makefile.win b/docshell/makefile.win index 043e761c7df..a5a0de93712 100644 --- a/docshell/makefile.win +++ b/docshell/makefile.win @@ -21,6 +21,6 @@ DEPTH=.. -DIRS=base html +DIRS=base html build include <$(DEPTH)\config\rules.mak>