activex.pp, IOleCache.setData( pmedium)
Original Reporter info from Mantis: nanobit @nanobit
-
Reporter name:
Original Reporter info from Mantis: nanobit @nanobit
- Reporter name:
Description:
source\packages\winunits-base\src\activex.pp
IOleCache contains a bug in this declaration:
function SetData(var pFormatetc:tagFORMATETC;var pmedium:wireSTGMEDIUM;fRelease:Bool):HRESULT;stdcall;
The major problem is that wireSTGMEDIUM is a pointer, thus the method gets pointer-to-pointer-to-record.
TStgMedium should be used; the whole signature should be equal to IDataObject.setData():
function SetData( const formatEtc: TFormatEtc; const medium: TStgMedium; fRelease: bool): HRESULT; stdcall;
IDataObject/IOleCache.SetData() in MS platform sdk:
virtual HRESULT STDMETHODCALLTYPE SetData(
/* [unique][in] */ FORMATETC pformatetc,
/ [unique][in] */ STGMEDIUM pmedium,
/ [in] */ BOOL fRelease) = 0;
Mantis conversion info:
- Mantis ID: 34758
- OS: Windows
- OS Build: 10
- Platform: win32
- Fixed in revision: 40745 (#90ca4182)