Mercurial > projects > dwt2
diff org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/ole/win32/extras.d @ 0:6dd524f61e62
add dwt win and basic java stuff
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Mon, 02 Mar 2009 14:44:16 +0100 |
parents | |
children | 4642ab680468 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/internal/ole/win32/extras.d Mon Mar 02 14:44:16 2009 +0100 @@ -0,0 +1,279 @@ +module org.eclipse.swt.internal.ole.win32.extras; + +// +// extra bits form here and there to bring the com alias inline with MS +// to ease the porting. +// + +//public import std.c.windows.com; +//public import std.c.windows.windows; +import org.eclipse.swt.internal.win32.WINTYPES; +// private import org.eclipse.swt.internal.ole.win32.comtypes; +alias WCHAR OLECHAR; +alias OLECHAR *LPOLESTR; +alias OLECHAR *LPCOLESTR; + +enum +{ + rmm = 23, // OLE 2 version number info + rup = 639, +} + +enum : int +{ + S_OK = 0, + S_FALSE = 0x00000001, + NOERROR = 0, + E_NOTIMPL = cast(int)0x80004001, + E_NOINTERFACE = cast(int)0x80004002, + E_POINTER = cast(int)0x80004003, + E_ABORT = cast(int)0x80004004, + E_FAIL = cast(int)0x80004005, + E_HANDLE = cast(int)0x80070006, + CLASS_E_NOAGGREGATION = cast(int)0x80040110, + E_OUTOFMEMORY = cast(int)0x8007000E, + E_INVALIDARG = cast(int)0x80070057, + E_UNEXPECTED = cast(int)0x8000FFFF, +} + +// in tango types.di +// struct GUID { // size is 16 +// align(1): +// DWORD Data1; +// WORD Data2; +// WORD Data3; +// BYTE Data4[8]; +// } + +enum +{ + CLSCTX_INPROC_SERVER = 0x1, + CLSCTX_INPROC_HANDLER = 0x2, + CLSCTX_LOCAL_SERVER = 0x4, + CLSCTX_INPROC_SERVER16 = 0x8, + CLSCTX_REMOTE_SERVER = 0x10, + CLSCTX_INPROC_HANDLER16 = 0x20, + CLSCTX_INPROC_SERVERX86 = 0x40, + CLSCTX_INPROC_HANDLERX86 = 0x80, + + CLSCTX_INPROC = (CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER), + CLSCTX_ALL = (CLSCTX_INPROC_SERVER| CLSCTX_INPROC_HANDLER| CLSCTX_LOCAL_SERVER), + CLSCTX_SERVER = (CLSCTX_INPROC_SERVER|CLSCTX_LOCAL_SERVER), +} + +alias GUID IID; +alias GUID CLSID; + +extern (C) +{ + extern IID IID_IUnknown; + extern IID IID_IClassFactory; + extern IID IID_IMarshal; + extern IID IID_IMallocSpy; + extern IID IID_IStdMarshalInfo; + extern IID IID_IExternalConnection; + extern IID IID_IMultiQI; + extern IID IID_IEnumUnknown; + extern IID IID_IBindCtx; + extern IID IID_IEnumMoniker; + extern IID IID_IRunnableObject; + extern IID IID_IRunningObjectTable; + extern IID IID_IPersist; + extern IID IID_IPersistStream; + extern IID IID_IMoniker; + extern IID IID_IROTData; + extern IID IID_IEnumString; + extern IID IID_ISequentialStream; + extern IID IID_IStream; + extern IID IID_IEnumSTATSTG; + extern IID IID_IStorage; + extern IID IID_IPersistFile; + extern IID IID_IPersistStorage; + extern IID IID_ILockBytes; + extern IID IID_IEnumFORMATETC; + extern IID IID_IEnumSTATDATA; + extern IID IID_IRootStorage; + extern IID IID_IAdviseSink; + extern IID IID_IAdviseSink2; + extern IID IID_IDataObject; + extern IID IID_IDataAdviseHolder; + extern IID IID_IMessageFilter; + extern IID IID_IRpcChannelBuffer; + extern IID IID_IRpcProxyBuffer; + extern IID IID_IRpcStubBuffer; + extern IID IID_IPSFactoryBuffer; + extern IID IID_IPropertyStorage; + extern IID IID_IPropertySetStorage; + extern IID IID_IEnumSTATPROPSTG; + extern IID IID_IEnumSTATPROPSETSTG; + extern IID IID_IFillLockBytes; + extern IID IID_IProgressNotify; + extern IID IID_ILayoutStorage; + extern IID GUID_NULL; + extern IID IID_IRpcChannel; + extern IID IID_IRpcStub; + extern IID IID_IStubManager; + extern IID IID_IRpcProxy; + extern IID IID_IProxyManager; + extern IID IID_IPSFactory; + extern IID IID_IInternalMoniker; + extern IID IID_IDfReserved1; + extern IID IID_IDfReserved2; + extern IID IID_IDfReserved3; + extern IID IID_IStub; + extern IID IID_IProxy; + extern IID IID_IEnumGeneric; + extern IID IID_IEnumHolder; + extern IID IID_IEnumCallback; + extern IID IID_IOleManager; + extern IID IID_IOlePresObj; + extern IID IID_IDebug; + extern IID IID_IDebugStream; + extern IID IID_StdOle; + extern IID IID_ICreateTypeInfo; + extern IID IID_ICreateTypeInfo2; + extern IID IID_ICreateTypeLib; + extern IID IID_ICreateTypeLib2; + extern IID IID_IDispatch; + extern IID IID_IEnumVARIANT; + extern IID IID_ITypeComp; + extern IID IID_ITypeInfo; + extern IID IID_ITypeInfo2; + extern IID IID_ITypeLib; + extern IID IID_ITypeLib2; + extern IID IID_ITypeChangeEvents; + extern IID IID_IErrorInfo; + extern IID IID_ICreateErrorInfo; + extern IID IID_ISupportErrorInfo; + extern IID IID_IOleAdviseHolder; + extern IID IID_IOleCache; + extern IID IID_IOleCache2; + extern IID IID_IOleCacheControl; + extern IID IID_IParseDisplayName; + extern IID IID_IOleContainer; + extern IID IID_IOleClientSite; + extern IID IID_IOleObject; + extern IID IID_IOleWindow; + extern IID IID_IOleLink; + extern IID IID_IOleItemContainer; + extern IID IID_IOleInPlaceUIWindow; + extern IID IID_IOleInPlaceActiveObject; + extern IID IID_IOleInPlaceFrame; + extern IID IID_IOleInPlaceObject; + extern IID IID_IOleInPlaceSite; + extern IID IID_IContinue; + extern IID IID_IViewObject; + extern IID IID_IViewObject2; + extern IID IID_IDropSource; + extern IID IID_IDropTarget; + extern IID IID_IEnumOLEVERB; +} + +extern (Windows) export { + DWORD CoBuildVersion(); + + int StringFromGUID2(GUID *rguid, LPOLESTR lpsz, int cbMax); + + /* init/uninit */ + + HRESULT CoInitialize(LPVOID pvReserved); + void CoUninitialize(); + DWORD CoGetCurrentProcess(); + + + HRESULT CoCreateInstance(CLSID *rclsid, IUnknown UnkOuter, + DWORD dwClsContext, IID* riid, void* ppv); + + //HINSTANCE CoLoadLibrary(LPOLESTR lpszLibName, BOOL bAutoFree); + void CoFreeLibrary(HINSTANCE hInst); + void CoFreeAllLibraries(); + void CoFreeUnusedLibraries(); + + interface IUnknown { + HRESULT QueryInterface(IID* riid, void** pvObject); + ULONG AddRef(); + ULONG Release(); + } + + interface IClassFactory : IUnknown { + HRESULT CreateInstance(IUnknown UnkOuter, IID* riid, void** pvObject); + HRESULT LockServer(BOOL fLock); + } + +} + + +alias IUnknown LPUNKNOWN; +alias IClassFactory LPCLASSFACTORY; + +//alias LPRECT LPCRECT; /* D has no consts */ +struct COAUTHINFO{} +//alias DWORD LCID; +alias PDWORD PLCID; +//typedef GUID CLSID; +//alias CLSID * LPCLSID; +alias GUID *REFGUID; + +//alias IID *REFIID; + +alias CLSID *REFCLSID; + +//typedef FMTID *REFFMTID; +union __MIDL_IWinTypes_0001 +{ +DWORD dwValue; +wchar *pwszName; +} +struct userCLIPFORMAT +{ + long fContext; + __MIDL_IWinTypes_0001 u; +} + +alias userCLIPFORMAT *wireCLIPFORMAT; + +alias WORD CLIPFORMAT; + +alias void * HMETAFILEPICT; +// typeless hack +alias void * wireHGLOBAL; +alias void * wireHBITMAP; +alias void * wireHPALETTE; +alias void * wireHENHMETAFILE; +alias void * wireHMETAFILE; +alias void * wireHMETAFILEPICT; + +struct BYTE_BLOB { + ULONG clSize; + byte[1] abData; +} + +alias BYTE_BLOB *UP_BYTE_BLOB; + +struct WORD_BLOB +{ + ULONG clSize; + ushort[1] asData; +} + +alias WORD_BLOB *UP_WORD_BLOB; + +struct DWORD_BLOB +{ + ULONG clSize; + ULONG[1] alData; +} +alias DWORD_BLOB *UP_DWORD_BLOB; +alias ushort VARTYPE; +alias short VARIANT_BOOL; + +// all the st +enum READYSTATE + { READYSTATE_UNINITIALIZED = 0, + READYSTATE_LOADING = 1, + READYSTATE_LOADED = 2, + READYSTATE_INTERACTIVE = 3, + READYSTATE_COMPLETE = 4 +} + +alias HANDLE HTASK;