view org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/mozilla/nsISupports.d @ 53:7e78af7adab5

[swt lin]
author Frank Benoit <benoit@tionex.de>
date Fri, 27 Mar 2009 21:29:10 +0100
parents f713da8bc051
children 70388b0e6dad
line wrap: on
line source

module org.eclipse.swt.internal.mozilla.nsISupports;

import java.lang.all;

import org.eclipse.swt.internal.mozilla.Common;
import org.eclipse.swt.internal.mozilla.nsID;

const char[] NS_ISUPPORTS_IID_STR = "00000000-0000-0000-c000-000000000046";

const nsIID NS_ISUPPORTS_IID= 
        { 0x00000000, 0x0000, 0x0000, 
          [ 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46 ] };

version(D_Version2){
    mixin("alias const(nsIID) cnsIID;");
    mixin("alias const(nsID) cnsID;");
} else { // D1
    alias nsIID cnsIID;
    alias nsID cnsID;
}
interface IUnknown
{
    static const char[] IID_STR = NS_ISUPPORTS_IID_STR;
    static const nsIID IID = NS_ISUPPORTS_IID;

extern(System):
    nsresult QueryInterface( cnsIID* uuid, void **result);

    nsrefcnt AddRef();
    nsrefcnt Release();
}

// WHY WE USE COM's IUnknown for XPCOM:
//
// The IUnknown interface is special-cased in D and is specifically designed to be
// compatible with MS COM.  XPCOM's nsISupports interface is the exact equivalent
// of IUnknown so we alias it here to take advantage of D's COM support. -JJR

alias IUnknown nsISupports;