Mercurial > projects > dwt-win
changeset 284:bb89fd34ec82
Fix for OLE functionality. Thanks to Enzo Petrelli
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Wed, 20 Aug 2008 15:20:55 +0200 |
parents | 92e785261f30 |
children | 2a558b06fef7 |
files | dwt/ole/win32/OleAutomation.d dwt/ole/win32/OleClientSite.d dwt/ole/win32/OleControlSite.d |
diffstat | 3 files changed, 11 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/dwt/ole/win32/OleAutomation.d Fri Aug 08 15:19:05 2008 +0200 +++ b/dwt/ole/win32/OleAutomation.d Wed Aug 20 15:20:55 2008 +0200 @@ -260,17 +260,17 @@ data.args[i].name = names[i + 1]; } short[1] vt; - COM.MoveMemory(vt.ptr, funcdesc.lprgelemdescParam + i * 16 + 4, 2); + COM.MoveMemory(vt.ptr, (cast(void*)funcdesc.lprgelemdescParam) + i * 16 + 4, 2); if (vt[0] is OLE.VT_PTR) { int[1] pTypedesc; - COM.MoveMemory(pTypedesc.ptr, funcdesc.lprgelemdescParam + i * 16, 4); + COM.MoveMemory(pTypedesc.ptr, (cast(void*)funcdesc.lprgelemdescParam) + i * 16, 4); short[1] vt2; COM.MoveMemory(vt2.ptr, pTypedesc[0] + 4, 2); vt[0] = cast(short)(vt2[0] | COM.VT_BYREF); } data.args[i].type = vt[0]; short[1] wParamFlags; - COM.MoveMemory(wParamFlags.ptr, funcdesc.lprgelemdescParam + i * 16 + 12, 2); + COM.MoveMemory(wParamFlags.ptr, (cast(void*)funcdesc.lprgelemdescParam) + i * 16 + 12, 2); data.args[i].flags = wParamFlags[0]; }
--- a/dwt/ole/win32/OleClientSite.d Fri Aug 08 15:19:05 2008 +0200 +++ b/dwt/ole/win32/OleClientSite.d Wed Aug 20 15:20:55 2008 +0200 @@ -151,8 +151,8 @@ // install the Ole Frame for this Client Site while (parent !is null) { - if ( auto frame = cast(OleFrame)parent){ - frame = frame; + if ( auto aframe = cast(OleFrame)parent){ + frame = aframe; break; } parent = parent.getParent(); @@ -933,8 +933,9 @@ if (riid is null || ppvObject is null) return COM.E_NOINTERFACE; - GUID* guid = new GUID(); - COM.MoveMemory(guid, riid, GUID.sizeof); + GUID oGuid = *riid; + GUID* guid = &oGuid; + //COM.MoveMemory(guid, riid, GUID.sizeof); if (COM.IsEqualGUID(guid, &COM.IIDIUnknown)) { *ppvObject = cast(void*)cast(IUnknown)iUnknown;
--- a/dwt/ole/win32/OleControlSite.d Fri Aug 08 15:19:05 2008 +0200 +++ b/dwt/ole/win32/OleControlSite.d Wed Aug 20 15:20:55 2008 +0200 @@ -618,8 +618,9 @@ return result; if (riid is null || ppvObject is null) return COM.E_INVALIDARG; - GUID* guid; - COM.MoveMemory(&guid, riid, GUID.sizeof); + GUID oGuid = &riid; + GUID* guid = &oGuid; + //COM.MoveMemory(&guid, riid, GUID.sizeof); if (COM.IsEqualGUID(guid, &COM.IIDIOleControlSite)) { *ppvObject = cast(void*)cast(IOleControlSite)iOleControlSite; AddRef();