# HG changeset patch # User Frank Benoit # Date 1219929144 -7200 # Node ID acf6957f2344d6e24ab51fa5ae045529c91234b7 # Parent 4faf63f6948ff823e8bcbc9bf7b21f64f34ed256 OLE fixes, thanks to Enzo Petrelli. diff -r 4faf63f6948f -r acf6957f2344 dwt/ole/win32/OleClientSite.d --- a/dwt/ole/win32/OleClientSite.d Sun Aug 24 20:57:52 2008 +0200 +++ b/dwt/ole/win32/OleClientSite.d Thu Aug 28 15:12:24 2008 +0200 @@ -1097,7 +1097,7 @@ LPVOID pv = COM.CoTaskMemAlloc(4); uint size; auto rc = tempContents.Read(pv, 4, null); - OS.MoveMemory(size, pv, 4); + OS.MoveMemory(&size, pv, 4); COM.CoTaskMemFree(pv); if (rc is COM.S_OK && size > 0) { diff -r 4faf63f6948f -r acf6957f2344 dwt/ole/win32/OleFrame.d --- a/dwt/ole/win32/OleFrame.d Sun Aug 24 20:57:52 2008 +0200 +++ b/dwt/ole/win32/OleFrame.d Thu Aug 28 15:12:24 2008 +0200 @@ -504,7 +504,7 @@ } // copy the menu item count information to the pointer - COM.MoveMemory(lpMenuWidths + 8, &containerMenuCount, 4); + COM.MoveMemory((cast(void*)lpMenuWidths) + 8, &containerMenuCount, 4); // Loop over all "Window-like" menus in the menubar and get information about the // item from the OS. @@ -529,7 +529,7 @@ } // copy the menu item count information to the pointer - COM.MoveMemory(lpMenuWidths + 16, &windowMenuCount, 4); + COM.MoveMemory((cast(void*)lpMenuWidths) + 16, &windowMenuCount, 4); // free resources used in querying the OS if (pszText !is null) diff -r 4faf63f6948f -r acf6957f2344 dwt/ole/win32/Variant.d --- a/dwt/ole/win32/Variant.d Sun Aug 24 20:57:52 2008 +0200 +++ b/dwt/ole/win32/Variant.d Thu Aug 28 15:12:24 2008 +0200 @@ -483,66 +483,66 @@ // set type pData.vt = type; if ((type & COM.VT_BYREF) is COM.VT_BYREF) { - COM.MoveMemory(pData, &type, 2); - COM.MoveMemory(pData + 8, &byRefPtr, 4); + COM.MoveMemory((cast(void*)pData), &type, 2); + COM.MoveMemory((cast(void*)pData) + 8, &byRefPtr, 4); return; } switch (type) { case COM.VT_EMPTY : case COM.VT_NULL : - COM.MoveMemory(pData, &type, 2); + COM.MoveMemory((cast(void*)pData), &type, 2); break; case COM.VT_BOOL : - COM.MoveMemory(pData, &type, 2); + COM.MoveMemory((cast(void*)pData), &type, 2); auto v = booleanData ? COM.VARIANT_TRUE : COM.VARIANT_FALSE; - COM.MoveMemory(pData + 8, &v, 2); + COM.MoveMemory((cast(void*)pData) + 8, &v, 2); break; case COM.VT_I1 : - COM.MoveMemory(pData, &type, 2); - COM.MoveMemory(pData + 8, &byteData, 1); + COM.MoveMemory((cast(void*)pData), &type, 2); + COM.MoveMemory((cast(void*)pData) + 8, &byteData, 1); break; case COM.VT_I2 : - COM.MoveMemory(pData, &type, 2); - COM.MoveMemory(pData + 8, &shortData, 2); + COM.MoveMemory((cast(void*)pData), &type, 2); + COM.MoveMemory((cast(void*)pData) + 8, &shortData, 2); break; case COM.VT_UI2 : - COM.MoveMemory(pData, &type, 2); - COM.MoveMemory(pData + 8, &charData, 2); + COM.MoveMemory((cast(void*)pData), &type, 2); + COM.MoveMemory((cast(void*)pData) + 8, &charData, 2); break; case COM.VT_I4 : - COM.MoveMemory(pData, &type, 2); - COM.MoveMemory(pData + 8, &intData, 4); + COM.MoveMemory((cast(void*)pData), &type, 2); + COM.MoveMemory((cast(void*)pData) + 8, &intData, 4); break; case COM.VT_I8 : - COM.MoveMemory(pData, &type, 2); - COM.MoveMemory(pData + 8, &longData, 8); + COM.MoveMemory((cast(void*)pData), &type, 2); + COM.MoveMemory((cast(void*)pData) + 8, &longData, 8); break; case COM.VT_R4 : - COM.MoveMemory(pData, &type, 2); - COM.MoveMemory(pData + 8, &floatData, 4); + COM.MoveMemory((cast(void*)pData), &type, 2); + COM.MoveMemory((cast(void*)pData) + 8, &floatData, 4); break; case COM.VT_R8 : - COM.MoveMemory(pData, &type, 2); - COM.MoveMemory(pData + 8, &doubleData, 8); + COM.MoveMemory((cast(void*)pData), &type, 2); + COM.MoveMemory((cast(void*)pData) + 8, &doubleData, 8); break; case COM.VT_DISPATCH : dispatchData.AddRef(); - COM.MoveMemory(pData, &type, 2); + COM.MoveMemory((cast(void*)pData), &type, 2); auto v = cast(void*)dispatchData; - COM.MoveMemory(pData + 8, &v, 4); + COM.MoveMemory((cast(void*)pData) + 8, &v, 4); break; case COM.VT_UNKNOWN : unknownData.AddRef(); - COM.MoveMemory(pData, &type, 2); + COM.MoveMemory((cast(void*)pData), &type, 2); auto v = cast(void*)dispatchData; - COM.MoveMemory(pData + 8, &v, 4); + COM.MoveMemory((cast(void*)pData) + 8, &v, 4); break; case COM.VT_BSTR : - COM.MoveMemory(pData, &type, 2); + COM.MoveMemory((cast(void*)pData), &type, 2); wchar[] data = StrToWCHARs(stringData); auto ptr = COM.SysAllocString(data.ptr); - COM.MoveMemory(pData + 8, &ptr, 4); + COM.MoveMemory((cast(void*)pData) + 8, &ptr, 4); break; default : @@ -896,12 +896,12 @@ if (pData is null) OLE.error(OLE.ERROR_INVALID_ARGUMENT); short[1] dataType ; - COM.MoveMemory(dataType.ptr, pData, 2); + COM.MoveMemory(dataType.ptr, (cast(void*)pData), 2); type = dataType[0]; if ((type & COM.VT_BYREF) is COM.VT_BYREF) { void*[1] newByRefPtr; - OS.MoveMemory(newByRefPtr.ptr, pData + 8, 4); + OS.MoveMemory(newByRefPtr.ptr, (cast(void*)pData) + 8, 4); byRefPtr = newByRefPtr[0]; return; } @@ -912,47 +912,47 @@ break; case COM.VT_BOOL : short[1] newBooleanData; - COM.MoveMemory(newBooleanData.ptr, pData + 8, 2); + COM.MoveMemory(newBooleanData.ptr, (cast(void*)pData) + 8, 2); booleanData = (newBooleanData[0] !is COM.VARIANT_FALSE); break; case COM.VT_I1 : byte[1] newByteData; - COM.MoveMemory(newByteData.ptr, pData + 8, 1); + COM.MoveMemory(newByteData.ptr, (cast(void*)pData) + 8, 1); byteData = newByteData[0]; break; case COM.VT_I2 : short[1] newShortData; - COM.MoveMemory(newShortData.ptr, pData + 8, 2); + COM.MoveMemory(newShortData.ptr, (cast(void*)pData) + 8, 2); shortData = newShortData[0]; break; case COM.VT_UI2 : wchar[1] newCharData; - COM.MoveMemory(newCharData.ptr, pData + 8, 2); + COM.MoveMemory(newCharData.ptr, (cast(void*)pData) + 8, 2); charData = newCharData[0]; break; case COM.VT_I4 : int[1] newIntData; - OS.MoveMemory(newIntData.ptr, pData + 8, 4); + OS.MoveMemory(newIntData.ptr, (cast(void*)pData) + 8, 4); intData = newIntData[0]; break; case COM.VT_I8 : long[1] newLongData; - OS.MoveMemory(newLongData.ptr, pData + 8, 8); + OS.MoveMemory(newLongData.ptr, (cast(void*)pData) + 8, 8); longData = newLongData[0]; break; case COM.VT_R4 : float[1] newFloatData; - COM.MoveMemory(newFloatData.ptr, pData + 8, 4); + COM.MoveMemory(newFloatData.ptr, (cast(void*)pData) + 8, 4); floatData = newFloatData[0]; break; case COM.VT_R8 : double[1] newDoubleData; - COM.MoveMemory(newDoubleData.ptr, pData + 8, 8); + COM.MoveMemory(newDoubleData.ptr, (cast(void*)pData) + 8, 8); doubleData = newDoubleData[0]; break; case COM.VT_DISPATCH : { IDispatch[1] ppvObject; - OS.MoveMemory(ppvObject.ptr, pData + 8, 4); + OS.MoveMemory(ppvObject.ptr, (cast(void*)pData) + 8, 4); if (ppvObject[0] is null) { type = COM.VT_EMPTY; break; @@ -963,7 +963,7 @@ } case COM.VT_UNKNOWN : { IUnknown[1] ppvObject; - OS.MoveMemory(ppvObject.ptr, pData + 8, 4); + OS.MoveMemory(ppvObject.ptr, (cast(void*)pData) + 8, 4); if (ppvObject[0] is null) { type = COM.VT_EMPTY; break; @@ -975,7 +975,7 @@ case COM.VT_BSTR : // get the address of the memory in which the string resides wchar*[1] hMem; - OS.MoveMemory(hMem.ptr, pData + 8, 4); + OS.MoveMemory(hMem.ptr, (cast(void*)pData) + 8, 4); if (hMem[0] is null) { type = COM.VT_EMPTY; break;