static unsafe NPError destroy(NPP* instance,NPSavedData** save) { instances[instance->pdata].Key.Dispose(); instances.Remove(instance->pdata); instance->pdata = IntPtr.Zero; File.AppendAllText(logfile,"Destroy " + instance->pdata + "\n"); return NPError.NO_ERROR; }
static unsafe NPError newp(sbyte* mimeType,NPP* instance,Mode mode,short argc,sbyte** argn,sbyte** argv,NPSavedData* saved) { var target = new GLInstance(); instance->pdata = new IntPtr(target.GetHashCode()); instances.Add(instance->pdata,new KeyValuePair<GLInstance,WindowProc>(target,target.WndProc)); File.AppendAllText(logfile,"New " + instance->pdata + "\n"); return NPError.NO_ERROR; }