25
|
1 /*******************************************************************************
|
|
2 * Copyright (c) 2003, 2008 IBM Corporation and others.
|
|
3 * All rights reserved. This program and the accompanying materials
|
|
4 * are made available under the terms of the Eclipse Public License v1.0
|
|
5 * which accompanies this distribution, and is available at
|
|
6 * http://www.eclipse.org/legal/epl-v10.html
|
|
7 *
|
|
8 * Contributors:
|
|
9 * IBM Corporation - initial API and implementation
|
|
10 * Port to the D programming language:
|
|
11 * John Reimer <terminal.node@gmail.com>
|
|
12 *******************************************************************************/
|
|
13 module org.eclipse.swt.browser.PromptService2Factory;
|
|
14
|
|
15 //import java.lang.all;
|
|
16 import org.eclipse.swt.internal.mozilla.Common;
|
|
17 //import org.eclipse.swt.internal.C;
|
|
18 import XPCOM = org.eclipse.swt.internal.mozilla.XPCOM;
|
|
19 //import org.eclipse.swt.internal.mozilla.XPCOMObject;
|
|
20 import org.eclipse.swt.internal.mozilla.nsID;
|
|
21 import org.eclipse.swt.internal.mozilla.nsIFactory;
|
|
22 import org.eclipse.swt.internal.mozilla.nsISupports;
|
|
23 import org.eclipse.swt.browser.PromptService2;
|
|
24
|
|
25 class PromptService2Factory : nsIFactory {
|
|
26 // XPCOMObject supports;
|
|
27 // XPCOMObject factory;
|
|
28 int refCount = 0;
|
|
29
|
|
30 this () {
|
|
31 // createCOMInterfaces ();
|
|
32 }
|
|
33
|
|
34 extern(System)
|
|
35 nsrefcnt AddRef () {
|
|
36 refCount++;
|
|
37 return refCount;
|
|
38 }
|
|
39
|
|
40 extern(System)
|
53
|
41 nsresult QueryInterface (cnsID* riid, void** ppvObject) {
|
25
|
42 if (riid is null || ppvObject is null) return XPCOM.NS_ERROR_NO_INTERFACE;
|
|
43 //nsID guid = new nsID ();
|
|
44 //XPCOM.memmove (guid, riid, nsID.sizeof);
|
|
45
|
|
46 if (*riid == nsISupports.IID) {
|
|
47 *ppvObject = cast(void*)cast(nsISupports)this;
|
|
48 AddRef ();
|
|
49 return XPCOM.NS_OK;
|
|
50 }
|
|
51 if (*riid == nsIFactory.IID) {
|
|
52 *ppvObject = cast(void*)cast(nsIFactory)this;
|
|
53 AddRef ();
|
|
54 return XPCOM.NS_OK;
|
|
55 }
|
|
56
|
|
57 *ppvObject = null;
|
|
58 return XPCOM.NS_ERROR_NO_INTERFACE;
|
|
59 }
|
|
60
|
|
61 extern(System)
|
|
62 nsrefcnt Release () {
|
|
63 refCount--;
|
|
64 //if (refCount is null) disposeCOMInterfaces ();
|
|
65 return refCount;
|
|
66 }
|
|
67
|
|
68 /* nsIFactory */
|
|
69
|
|
70 extern(System)
|
|
71 nsresult CreateInstance (nsISupports aOuter, nsIID* iid, void** result) {
|
|
72 if (result is null)
|
|
73 return XPCOM.NS_ERROR_INVALID_ARG;
|
|
74 auto promptService = new PromptService2;
|
|
75 nsresult rv = promptService.QueryInterface( iid, result );
|
|
76 if (XPCOM.NS_FAILED(rv)) {
|
|
77 *result = null;
|
|
78 delete promptService;
|
|
79 }
|
|
80 return rv;
|
|
81 }
|
|
82
|
|
83 extern(System)
|
|
84 nsresult LockFactory (PRBool lock) {
|
|
85 return XPCOM.NS_OK;
|
|
86 }
|
|
87 }
|