# HG changeset patch # User Frank Benoit # Date 1219238455 -7200 # Node ID bb89fd34ec82a7e027e12ffd4a417d246f12827f # Parent 92e785261f30f02187e266513533c2e06c18aa55 Fix for OLE functionality. Thanks to Enzo Petrelli diff -r 92e785261f30 -r bb89fd34ec82 dwt/ole/win32/OleAutomation.d --- 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]; } diff -r 92e785261f30 -r bb89fd34ec82 dwt/ole/win32/OleClientSite.d --- 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; diff -r 92e785261f30 -r bb89fd34ec82 dwt/ole/win32/OleControlSite.d --- 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();