Mercurial > projects > dwt-win
diff dwt/ole/win32/Variant.d @ 300:acf6957f2344
OLE fixes, thanks to Enzo Petrelli.
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Thu, 28 Aug 2008 15:12:24 +0200 |
parents | fd9c62a2998e |
children |
line wrap: on
line diff
--- 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;