On 3月12日, 下午4时11分, [EMAIL PROTECTED] wrote:
> //thanks a lot to Torisugari, Benjamin Smedberg, Emil Wikström & all
> mozilla dev docs, thank you all
>
> #define XPCOM_GLUE
> #include <stdlib.h>
> #include <stdio.h>
> #include <limits.h>
> #include <gtk/gtk.h>
> #include "xpcom-config.h"
> #include "nsXPCOMGlue.h"
> #include "nsDebug.h"
> #include "nsCOMPtr.h"
> #include "widget/nsIBaseWindow.h"
> #include "nsILocalFile.h"
> #include "nsIWebBrowser.h"
> #include "docshell/nsIWebNavigation.h"
> #include "nsEmbedCID.h"
> #include "nsEmbedString.h"
> #include "xulapp/nsXULAppAPI.h"
> #include "nsComponentManagerUtils.h"
>
> XRE_InitEmbeddingType XRE_InitEmbedding;
> XRE_TermEmbeddingType XRE_TermEmbedding;
>
> static gboolean delete_event( GtkWidget *widget, GdkEvent *event,
> gpointer data ) {
> gtk_main_quit();
> return FALSE;
>
> }
>
> int main(int argc, char** argv) {
> GtkWidget *window;
> nsCOMPtr<nsIBaseWindow> baseWindow;
> nsCOMPtr<nsIWebBrowser> webBrowser;
> nsCOMPtr<nsILocalFile> libxul;
> nsCOMPtr<nsIWebNavigation> webNavigation;
> nsDynamicFunctionLoad nsFuncs[] = {
> {"XRE_InitEmbedding", (NSFuncPtr*)&XRE_InitEmbedding},
> {"XRE_TermEmbedding", (NSFuncPtr*)
> &XRE_TermEmbedding},
> {0, 0}
> };
> nsresult rv;
> gtk_init (&argc, &argv);
> window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
> gtk_widget_show(window);
> rv = XPCOMGlueStartup("/opt/xulrunner/libxpcom.so");
> if (NS_FAILED(rv)) {
> printf("XPCOMGlueStartup\n");
> }
> rv = XPCOMGlueLoadXULFunctions(nsFuncs);
> if (NS_FAILED(rv)) {
> printf("XPCOMGlueLoadXULFunctions\n");
> }
> rv = NS_NewNativeLocalFile(nsEmbedCString("/opt/xulrunner"),
> PR_FALSE, getter_AddRefs(libxul));
> if (NS_FAILED(rv)) {
> printf("NS_NewNativeLocalFile\n");
> }
> rv = XRE_InitEmbedding(libxul, 0, 0, 0, 0);
> if (NS_FAILED(rv)) {
> printf("XRE_InitEmbedding\n");
> }
> webBrowser = do_CreateInstance(NS_WEBBROWSER_CONTRACTID, &rv);
> if (NS_FAILED(rv)) {
> printf("do_CreateInstance webBrowser\n");
> }
> baseWindow = do_QueryInterface(webBrowser);
> rv = baseWindow->InitWindow(window, 0, 0, 0, 300, 400);
> if (NS_FAILED(rv)) {
> printf("InitWindow\n");
> }
> rv = baseWindow->Create();
> if (NS_FAILED(rv)) {
> printf("Create\n");
> }
> rv =baseWindow->SetVisibility(PR_TRUE);
> if (NS_FAILED(rv)) {
> printf("SetVisibility\n");
> }
> webNavigation = do_QueryInterface(webBrowser);
> rv =
> webNavigation->LoadURI(NS_ConvertASCIItoUTF16("http://www.google.com").get(),
> nsIWebNavigation::LOAD_FLAGS_NONE, 0, 0, 0);
> if (NS_FAILED(rv)) {
> printf("LoadURI\n");
> }
> g_signal_connect(G_OBJECT(window), "delete_event",
> G_CALLBACK(delete_event), 0);
> gtk_main();
> printf("exit...\n");
> XRE_TermEmbedding();
> XPCOMGlueShutdown();
> return 0;
>
>
>
> }- 隐藏被引用文字 -
>
> - 显示引用的文字 -
hello
i try your code in fedora8, but it compiled wrong
_______________________________________________
dev-embedding mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-embedding