public void RegisterInterface(ISecondaryUpdate iSecondary) { CacheBitmap = new CacheBitmapDelegate(iSecondary.CacheBitmap); CacheBitmapV2 = new CacheBitmapV2Delegate(iSecondary.CacheBitmapV2); CacheBitmapV3 = new CacheBitmapV3Delegate(iSecondary.CacheBitmapV3); CacheColorTable = new CacheColorTableDelegate(iSecondary.CacheColorTable); CacheGlyph = new CacheGlyphDelegate(iSecondary.CacheGlyph); CacheGlyphV2 = new CacheGlyphV2Delegate(iSecondary.CacheGlyphV2); CacheBrush = new CacheBrushDelegate(iSecondary.CacheBrush); secondary->CacheBitmap = Marshal.GetFunctionPointerForDelegate(CacheBitmap); secondary->CacheBitmapV2 = Marshal.GetFunctionPointerForDelegate(CacheBitmapV2); secondary->CacheBitmapV3 = Marshal.GetFunctionPointerForDelegate(CacheBitmapV3); secondary->CacheColorTable = Marshal.GetFunctionPointerForDelegate(CacheColorTable); secondary->CacheGlyph = Marshal.GetFunctionPointerForDelegate(CacheGlyph); secondary->CacheGlyphV2 = Marshal.GetFunctionPointerForDelegate(CacheGlyphV2); secondary->CacheBrush = Marshal.GetFunctionPointerForDelegate(CacheBrush); }