Custom Query (35 matches)


Show under each result:

Results (1 - 3 of 35)

1 2 3 4 5 6 7 8 9 10 11
Ticket Resolution Summary Owner Reporter
#19 fixed Wrong VTABLE IPersistStream jasper

Reported by jasper, 6 years ago.


Decompiling the interface, I see

#region Assembly CAPE-OPENv1-1-0.dll, v1.1.0.0 C:\Program Files (x86)\Common Files\CAPE-OPEN\Reference Assemblies\CAPE-OPENv1-1-0.dll #endregion

using System; using System.Runtime.InteropServices; using System.Runtime.InteropServices.ComTypes;

namespace CAPEOPEN {

[ComVisible(false)] [Guid("00000109-0000-0000-C000-000000000046")] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] public interface IPersistStream : IPersist {

void GetSizeMax(out long pcbSize); int IsDirty(); void Load(IStream pStm); void Save(IStream pStm, bool fClearDirty);



The propert VTABLE order is {IsDirty,Load,Save,GetSizeMax}. As a result attempting to call Save actually calls GetSizeMax in the above interface.

#20 wontfix Marshal.ReleaseComObject michelpons jasper

Reported by jasper, 6 years ago.


Documentation should mention that for .NET implementations, all external objects must be released using Marshal.ReleaseComObject when they go out of scope. Otherwise .NET will not release the COM objects until GC is invoked, which causes external references to temporary objects to linger, and causes objects to be locked passed Terminate. It should be mentioned that Marshal.ReleaseComObject will render a COM object inaccessible, so this should not be done on a particular interface to a COM object while other interfaces to the same object must remain valid. Example: IPersistStreamSave should Marshal.ReleaseComObject the stream pointer within the routine. Example: objects connected to unit ports should Marshal.ReleaseComObject at Disconnect and Terminate.

#29 fixed Public property should be private property jasper

Reported by jasper, 10 months ago.


The problem is that the directory names CAPEOPENDIRECTORY.6087DC79_F9E7_4A90_BF9C_5DC775355161 and CAPEOPENDIRECTORY.FF607CD6_DDED_4C72_9407_AF18309AF5BC are upper case making them public properties. I assume those are coming from the TLB merge module? We need to change them to private properties with mixed case. By default, these values are set to the c:\program files area in the front end because the installer starts out with a per-machine installation since no ALLUSERS/MSIINSTALLPERUSER setting has been set. Adding these properties will not fix the problem because you will have the reverse problem when doing a per-machine install. The content will be installed in the wrong folder, although permissions will not be an issue.

Public properties are passed from the front end to the back end on the command line and thus are not changed in the back end.

1 2 3 4 5 6 7 8 9 10 11
Note: See TracQuery for help on using queries.