/// <summary> /// Handles load data notification /// </summary> unsafe static partial void Host_HandleLoadData(ISciterNotifications host, IntPtr pns) { var datantf = (SCN_LOAD_DATA *)pns; var e = new LoadDataEventArgs(datantf->GetUri(), () => datantf->GetData()) { IsCached = datantf->outData != IntPtr.Zero, //TODO: Htmlayout do not have such property //RequestId = datantf->request_id, ResourceType = (ResourceType)datantf->dataType }; host.ProcessLoadData(e); byte[] bytes = null; if (e.IsDataAvailable) { bytes = e.GetData(); } else { bytes = SciterFactory.ResolveBinResource(e.Uri, e.ResourceType); } SciterDataReady(datantf->hwnd, e.Uri, bytes); }
/// <summary> /// Handles behavior attach /// </summary> unsafe static partial void Host_HandleAttachBehavior(ISciterNotifications host, IntPtr pns) { var datantf = (SCN_ATTACH_BEHAVIOR *)pns; var e = new AttachBehaviorEventArgs(Element.Create(datantf->element), datantf->GetBehaviorName()); host.ProcessAttachBehavior(e); e.Behavior = e.Behavior ?? SciterFactory.ResolveBehavior(e.BehaviorName); if (e.Behavior != null) { datantf->elementProc = ElementEventProcEntryPoint; datantf->elementTag = InstanceProtector.Protect(e.Behavior); datantf->elementEvents = (EVENT_GROUPS)e.EventGroups; } }