1#![allow(non_snake_case, non_camel_case_types, non_upper_case_globals)]
2
3use crate::common::LPCWSTR;
4use crate::{
5 filter2::FILTER_PLUGIN_TABLE, input2::INPUT_PLUGIN_TABLE, module2::SCRIPT_MODULE_TABLE,
6 output2::OUTPUT_PLUGIN_TABLE,
7};
8use std::ffi::c_void;
9use std::os::raw::c_char;
10
11pub use windows_sys::Win32::Foundation::{HINSTANCE, HWND};
12
13pub type LPCSTR = *const c_char;
14
15#[repr(C)]
17pub struct COMMON_PLUGIN_TABLE {
18 pub name: LPCWSTR,
20 pub information: LPCWSTR,
22}
23
24pub type OBJECT_HANDLE = *mut c_void;
26
27pub type EFFECT_HANDLE = *mut c_void;
29
30#[repr(C)]
33pub struct OBJECT_LAYER_FRAME {
34 pub layer: i32,
36 pub start: i32,
38 pub end: i32,
40}
41
42#[repr(C)]
44pub struct MEDIA_INFO {
45 pub video_track_num: i32,
47 pub audio_track_num: i32,
49 pub total_time: f64,
51 pub width: i32,
53 pub height: i32,
55}
56
57#[repr(C)]
59pub struct MODULE_INFO {
60 pub r#type: i32,
61 pub name: LPCWSTR,
62 pub information: LPCWSTR,
63}
64
65impl MODULE_INFO {
66 pub const TYPE_SCRIPT_FILTER: i32 = 1;
68 pub const TYPE_SCRIPT_OBJECT: i32 = 2;
70 pub const TYPE_SCRIPT_CAMERA: i32 = 3;
72 pub const TYPE_SCRIPT_TRACK: i32 = 4;
74 pub const TYPE_SCRIPT_MODULE: i32 = 5;
76 pub const TYPE_PLUGIN_INPUT: i32 = 6;
78 pub const TYPE_PLUGIN_OUTPUT: i32 = 7;
80 pub const TYPE_PLUGIN_FILTER: i32 = 8;
82 pub const TYPE_PLUGIN_COMMON: i32 = 9;
84}
85
86#[repr(C)]
88pub struct TRACK_INFO {
89 pub mode: LPCWSTR,
91 pub param: *mut f64,
93 pub param_num: i32,
95 pub accelerate: bool,
97 pub decelerate: bool,
99 pub twopoint: bool,
101 pub timecontrol: bool,
103 pub group_num: i32,
105 pub group_index: i32,
107 pub group_name: LPCWSTR,
109}
110
111#[repr(C)]
113pub struct PALETTE_INFO {
114 pub color: [PALETTE_INFO_COLOR; Self::PALETTE_NUM],
115}
116
117impl PALETTE_INFO {
118 pub const PALETTE_NUM: usize = 64;
119}
120
121#[repr(C)]
123#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
124pub struct PALETTE_INFO_COLOR {
125 pub r: u8,
126 pub g: u8,
127 pub b: u8,
128 pub a: u8,
129}
130
131#[repr(C)]
133pub struct BPM_INFO {
134 pub tempo: f32,
136 pub beat: i32,
138 pub start: f64,
140 pub offset: f32,
142}
143
144#[repr(i32)]
146#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
147pub enum EVENT_TYPE {
148 UPDATE_OBJECT = 1,
150 CHANGE_EDIT_FRAME = 2,
152 CHANGE_EDIT_SCENE = 3,
154 CHANGE_FOCUS_OBJECT = 4,
156}
157
158#[repr(C)]
161pub struct EDIT_INFO {
162 pub width: i32,
164 pub height: i32,
166 pub rate: i32,
168 pub scale: i32,
170 pub sample_rate: i32,
172 pub frame: i32,
174 pub layer: i32,
176 pub frame_max: i32,
178 pub layer_max: i32,
180 pub display_frame_start: i32,
182 pub display_layer_start: i32,
184 pub display_frame_num: i32,
186 pub display_layer_num: i32,
188 pub select_range_start: i32,
190 pub select_range_end: i32,
192 pub grid_bpm_tempo: f32,
194 pub grid_bpm_beat: i32,
196 pub grid_bpm_offset: f32,
198 pub scene_id: i32,
200}
201
202#[repr(C)]
206pub struct EDIT_SECTION {
207 pub info: *mut EDIT_INFO,
209
210 pub create_object_from_alias:
221 unsafe extern "C" fn(alias: LPCSTR, layer: i32, frame: i32, length: i32) -> OBJECT_HANDLE,
222
223 pub find_object: unsafe extern "C" fn(layer: i32, frame: i32) -> OBJECT_HANDLE,
228
229 pub count_object_effect: unsafe extern "C" fn(object: OBJECT_HANDLE, effect: LPCWSTR) -> i32,
234
235 pub get_object_layer_frame: unsafe extern "C" fn(object: OBJECT_HANDLE) -> OBJECT_LAYER_FRAME,
239
240 pub get_object_alias: unsafe extern "C" fn(object: OBJECT_HANDLE) -> LPCSTR,
246
247 pub get_object_item_value:
257 unsafe extern "C" fn(object: OBJECT_HANDLE, effect: LPCWSTR, item: LPCWSTR) -> LPCSTR,
258
259 pub set_object_item_value: unsafe extern "C" fn(
269 object: OBJECT_HANDLE,
270 effect: LPCWSTR,
271 item: LPCWSTR,
272 value: LPCSTR,
273 ) -> bool,
274
275 pub move_object: unsafe extern "C" fn(object: OBJECT_HANDLE, layer: i32, frame: i32) -> bool,
281
282 pub delete_object: unsafe extern "C" fn(object: OBJECT_HANDLE),
285
286 pub get_focus_object: unsafe extern "C" fn() -> OBJECT_HANDLE,
289
290 pub set_focus_object: unsafe extern "C" fn(object: OBJECT_HANDLE),
293
294 pub get_project_file: unsafe extern "C" fn(edit: *mut EDIT_HANDLE) -> *mut PROJECT_FILE,
298
299 pub get_selected_object: unsafe extern "C" fn(index: i32) -> OBJECT_HANDLE,
303
304 pub get_selected_object_num: unsafe extern "C" fn() -> i32,
307
308 pub get_mouse_layer_frame: unsafe extern "C" fn(layer: *mut i32, frame: *mut i32) -> bool,
314
315 pub pos_to_layer_frame:
321 unsafe extern "C" fn(x: i32, y: i32, layer: *mut i32, frame: *mut i32) -> bool,
322
323 pub is_support_media_file: unsafe extern "C" fn(file: LPCWSTR, strict: bool) -> bool,
329
330 pub get_media_info:
336 unsafe extern "C" fn(file: LPCWSTR, info: *mut MEDIA_INFO, info_size: i32) -> bool,
337
338 pub create_object_from_media_file:
347 unsafe extern "C" fn(file: LPCWSTR, layer: i32, frame: i32, length: i32) -> OBJECT_HANDLE,
348
349 pub create_object:
358 unsafe extern "C" fn(effect: LPCWSTR, layer: i32, frame: i32, length: i32) -> OBJECT_HANDLE,
359
360 pub set_cursor_layer_frame: unsafe extern "C" fn(layer: i32, frame: i32),
364
365 pub set_display_layer_frame: unsafe extern "C" fn(layer: i32, frame: i32),
369
370 pub set_select_range: unsafe extern "C" fn(start: i32, end: i32),
374
375 pub set_grid_bpm: unsafe extern "C" fn(tempo: f32, beat: i32, offset: f32),
380
381 pub get_object_name: unsafe extern "C" fn(object: OBJECT_HANDLE) -> LPCWSTR,
386
387 pub set_object_name: unsafe extern "C" fn(object: OBJECT_HANDLE, name: LPCWSTR),
391
392 pub get_layer_name: unsafe extern "C" fn(layer: i32) -> LPCWSTR,
397
398 pub set_layer_name: unsafe extern "C" fn(layer: i32, name: LPCWSTR),
402
403 pub get_scene_name: unsafe extern "C" fn() -> LPCWSTR,
407
408 pub set_scene_name: unsafe extern "C" fn(name: LPCWSTR),
411
412 pub set_scene_size: unsafe extern "C" fn(width: i32, height: i32),
416
417 pub set_scene_frame_rate: unsafe extern "C" fn(rate: i32, scale: i32),
421
422 pub set_scene_sample_rate: unsafe extern "C" fn(sample_rate: i32),
425
426 pub get_layer_enable: unsafe extern "C" fn(layer: i32) -> bool,
430
431 pub set_layer_enable: unsafe extern "C" fn(layer: i32, enable: bool),
435
436 pub get_layer_lock: unsafe extern "C" fn(layer: i32) -> bool,
440
441 pub set_layer_lock: unsafe extern "C" fn(layer: i32, lock: bool),
445
446 pub get_object_section_num: unsafe extern "C" fn(object: OBJECT_HANDLE) -> i32,
450
451 pub get_focus_object_section: unsafe extern "C" fn() -> i32,
454
455 pub get_object_section_frame: unsafe extern "C" fn(object: OBJECT_HANDLE, section: i32) -> i32,
458
459 pub get_object_track_value: unsafe extern "C" fn(
461 object: OBJECT_HANDLE,
462 effect: LPCWSTR,
463 item: LPCWSTR,
464 frame: f64,
465 value: *mut f64,
466 ) -> bool,
467
468 pub get_object_check_value: unsafe extern "C" fn(
470 object: OBJECT_HANDLE,
471 effect: LPCWSTR,
472 item: LPCWSTR,
473 frame: i32,
474 value: *mut bool,
475 ) -> bool,
476
477 pub get_object_track_info: unsafe extern "C" fn(
479 object: OBJECT_HANDLE,
480 effect: LPCWSTR,
481 item: LPCWSTR,
482 info: *mut TRACK_INFO,
483 info_size: i32,
484 ) -> bool,
485
486 pub get_palette_name: unsafe extern "C" fn() -> LPCWSTR,
488
489 pub get_palette_info:
491 unsafe extern "C" fn(name: LPCWSTR, info: *mut PALETTE_INFO, info_size: i32) -> bool,
492
493 pub get_font: unsafe extern "C" fn(font: LPCWSTR) -> *mut c_void,
495
496 pub get_object_track_group_names: unsafe extern "C" fn(
498 object: OBJECT_HANDLE,
499 effect: LPCWSTR,
500 group_name: LPCWSTR,
501 item_names: *mut LPCWSTR,
502 item_num: i32,
503 ) -> i32,
504
505 #[deprecated = "新しい関数に差し替えるので廃止します"]
507 pub deprecated_get_grid_bpm_list:
508 unsafe extern "C" fn(bpm_list: *mut BPM_INFO, bpm_num: i32) -> i32,
509
510 #[deprecated = "新しい関数に差し替えるので廃止します"]
512 pub deprecated_set_grid_bpm_list: unsafe extern "C" fn(bpm_list: *mut BPM_INFO, bpm_num: i32),
513
514 pub find_effect: unsafe extern "C" fn(object: OBJECT_HANDLE, effect: LPCWSTR) -> EFFECT_HANDLE,
516
517 pub get_effect_list: unsafe extern "C" fn(
519 object: OBJECT_HANDLE,
520 effect_list: *mut EFFECT_HANDLE,
521 effect_num: i32,
522 ) -> i32,
523
524 pub get_effect_name: unsafe extern "C" fn(effect: EFFECT_HANDLE) -> LPCWSTR,
526
527 pub get_effect_enable: unsafe extern "C" fn(effect: EFFECT_HANDLE) -> bool,
529
530 pub set_effect_enable: unsafe extern "C" fn(effect: EFFECT_HANDLE, enable: bool),
532
533 pub get_effect_lock: unsafe extern "C" fn(effect: EFFECT_HANDLE) -> bool,
535
536 pub set_effect_lock: unsafe extern "C" fn(effect: EFFECT_HANDLE, lock: bool),
538
539 pub get_effect_item_value: unsafe extern "C" fn(effect: EFFECT_HANDLE, item: LPCWSTR) -> LPCSTR,
541
542 pub set_effect_item_value:
544 unsafe extern "C" fn(effect: EFFECT_HANDLE, item: LPCWSTR, value: LPCSTR) -> bool,
545
546 pub get_effect_track_value: unsafe extern "C" fn(
548 effect: EFFECT_HANDLE,
549 item: LPCWSTR,
550 frame: f64,
551 value: *mut f64,
552 ) -> bool,
553
554 pub get_effect_check_value: unsafe extern "C" fn(
556 effect: EFFECT_HANDLE,
557 item: LPCWSTR,
558 frame: i32,
559 value: *mut bool,
560 ) -> bool,
561
562 pub get_effect_track_info: unsafe extern "C" fn(
564 effect: EFFECT_HANDLE,
565 item: LPCWSTR,
566 info: *mut TRACK_INFO,
567 info_size: i32,
568 ) -> bool,
569
570 pub get_grid_bpm_list:
572 unsafe extern "C" fn(bpm_list: *mut BPM_INFO, bpm_num: i32, bpm_size: i32) -> i32,
573
574 pub set_grid_bpm_list:
576 unsafe extern "C" fn(bpm_list: *mut BPM_INFO, bpm_num: i32, bpm_size: i32),
577
578 pub create_effect:
581 unsafe extern "C" fn(object: OBJECT_HANDLE, effect: LPCWSTR) -> EFFECT_HANDLE,
582
583 pub delete_effect: unsafe extern "C" fn(object: OBJECT_HANDLE, effect: EFFECT_HANDLE) -> bool,
585
586 pub create_object_section: unsafe extern "C" fn(object: OBJECT_HANDLE, frame: i32) -> bool,
588
589 pub delete_object_section: unsafe extern "C" fn(object: OBJECT_HANDLE, section: i32) -> bool,
591
592 pub move_object_section:
595 unsafe extern "C" fn(object: OBJECT_HANDLE, section: i32, frame: i32) -> bool,
596
597 pub move_effect:
600 unsafe extern "C" fn(object: OBJECT_HANDLE, effect: EFFECT_HANDLE, index: i32) -> i32,
601
602 pub get_effect_data_value: unsafe extern "C" fn(
604 effect: EFFECT_HANDLE,
605 item: LPCWSTR,
606 data: *mut c_void,
607 size: i32,
608 ) -> i32,
609
610 pub set_effect_data_value: unsafe extern "C" fn(
612 effect: EFFECT_HANDLE,
613 item: LPCWSTR,
614 data: *mut c_void,
615 size: i32,
616 ) -> bool,
617
618 pub set_edited_state: unsafe extern "C" fn(),
620
621 pub get_mark_frame_list: unsafe extern "C" fn(frame_list: *mut i32, frame_num: i32) -> i32,
623
624 pub get_mark_frame_memo: unsafe extern "C" fn(frame: i32) -> LPCWSTR,
626
627 pub set_mark_frame: unsafe extern "C" fn(frame: i32, memo: LPCWSTR),
629
630 pub clear_mark_frame: unsafe extern "C" fn(frame: i32),
632
633 pub move_mark_frame: unsafe extern "C" fn(frame: i32, frame_to: i32) -> bool,
635
636 pub set_palette_info:
638 unsafe extern "C" fn(name: LPCWSTR, info: *mut PALETTE_INFO, info_size: i32) -> bool,
639}
640
641#[repr(C)]
644pub struct EDIT_HANDLE {
645 pub call_edit_section:
653 unsafe extern "C" fn(func_proc_edit: unsafe extern "C" fn(edit: *mut EDIT_SECTION)) -> bool,
654
655 pub call_edit_section_param: unsafe extern "C" fn(
657 param: *mut c_void,
658 func_proc_edit: unsafe extern "C" fn(param: *mut c_void, edit: *mut EDIT_SECTION),
659 ) -> bool,
660
661 pub get_edit_info: unsafe extern "C" fn(info: *mut EDIT_INFO, info_size: i32),
666
667 pub restart_host_app: unsafe extern "C" fn(),
669
670 pub enum_effect_name: unsafe extern "C" fn(
674 param: *mut c_void,
675 func_proc_enum_effect: unsafe extern "C" fn(
676 param: *mut c_void,
677 name: LPCWSTR,
678 r#type: i32,
679 flag: i32,
680 ),
681 ),
682
683 pub enum_module_info: unsafe extern "C" fn(
687 param: *mut c_void,
688 func_proc_enum_module: unsafe extern "C" fn(param: *mut c_void, info: *mut MODULE_INFO),
689 ),
690
691 pub get_host_app_window: unsafe extern "C" fn() -> HWND,
693
694 pub get_edit_state: unsafe extern "C" fn() -> i32,
696
697 pub call_read_section: unsafe extern "C" fn(
704 func_proc_read_section: unsafe extern "C" fn(edit: *mut EDIT_SECTION),
705 ) -> bool,
706
707 pub call_read_section_param: unsafe extern "C" fn(
710 param: *mut c_void,
711 func_proc_read_section: unsafe extern "C" fn(param: *mut c_void, edit: *mut EDIT_SECTION),
712 ) -> bool,
713
714 pub enum_effect_item: unsafe extern "C" fn(
720 effect: LPCWSTR,
721 param: *mut c_void,
722 func_proc_enum_effect_item: unsafe extern "C" fn(
723 param: *mut c_void,
724 name: LPCWSTR,
725 r#type: i32,
726 ),
727 ) -> bool,
728
729 pub rendering_scene_video: unsafe extern "C" fn(
731 frame: i32,
732 param: *mut c_void,
733 func_proc_rendering_video: unsafe extern "C" fn(
734 param: *mut c_void,
735 frame: i32,
736 buffer: *const c_void,
737 width: i32,
738 height: i32,
739 pitch: i32,
740 ),
741 ) -> bool,
742
743 pub rendering_scene_audio: unsafe extern "C" fn(
745 frame: i32,
746 param: *mut c_void,
747 func_proc_rendering_audio: unsafe extern "C" fn(
748 param: *mut c_void,
749 frame: i32,
750 buffer0: *const f32,
751 buffer1: *const f32,
752 sample_num: i32,
753 ),
754 ) -> bool,
755
756 pub wait_rendering_task: unsafe extern "C" fn(),
758
759 pub enum_font_name: unsafe extern "C" fn(
761 param: *mut c_void,
762 func_proc_enum_font: unsafe extern "C" fn(param: *mut c_void, name: LPCWSTR),
763 ),
764
765 pub enum_palette_name: unsafe extern "C" fn(
767 param: *mut c_void,
768 func_proc_enum_palette: unsafe extern "C" fn(param: *mut c_void, name: LPCWSTR),
769 ),
770
771 pub rendering_object_video: unsafe extern "C" fn(
773 object: OBJECT_HANDLE,
774 frame: i32,
775 apply_effect: bool,
776 param: *mut c_void,
777 func_proc_rendering_video: unsafe extern "C" fn(
778 param: *mut c_void,
779 frame: i32,
780 buffer: *const c_void,
781 width: i32,
782 height: i32,
783 pitch: i32,
784 ),
785 ) -> bool,
786
787 pub rendering_object_audio: unsafe extern "C" fn(
789 object: OBJECT_HANDLE,
790 frame: i32,
791 apply_effect: bool,
792 param: *mut c_void,
793 func_proc_rendering_audio: unsafe extern "C" fn(
794 param: *mut c_void,
795 frame: i32,
796 buffer0: *const f32,
797 buffer1: *const f32,
798 sample_num: i32,
799 ),
800 ) -> bool,
801
802 pub get_effect_item_group_names: unsafe extern "C" fn(
805 effect: LPCWSTR,
806 item: LPCWSTR,
807 item_names: *mut LPCWSTR,
808 item_num: i32,
809 item_index: *mut i32,
810 ) -> i32,
811}
812
813impl EDIT_HANDLE {
814 pub const EFFECT_TYPE_FILTER: i32 = 1;
816 pub const EFFECT_TYPE_INPUT: i32 = 2;
818 pub const EFFECT_TYPE_TRANSITION: i32 = 3;
820 pub const EFFECT_TYPE_CONTROL: i32 = 4;
822 pub const EFFECT_TYPE_OUTPUT: i32 = 5;
824 pub const EFFECT_FLAG_VIDEO: i32 = 1;
826 pub const EFFECT_FLAG_AUDIO: i32 = 2;
828 pub const EFFECT_FLAG_FILTER: i32 = 4;
830 pub const EFFECT_FLAG_CAMERA: i32 = 8;
832 pub const EDIT_STATE_EDIT: i32 = 0;
834 pub const EDIT_STATE_PLAY: i32 = 1;
836 pub const EDIT_STATE_SAVE: i32 = 2;
838 pub const EFFECT_ITEM_TYPE_INTEGER: i32 = 1;
840 pub const EFFECT_ITEM_TYPE_NUMBER: i32 = 2;
842 pub const EFFECT_ITEM_TYPE_CHECK: i32 = 3;
844 pub const EFFECT_ITEM_TYPE_TEXT: i32 = 4;
846 pub const EFFECT_ITEM_TYPE_STRING: i32 = 5;
848 pub const EFFECT_ITEM_TYPE_FILE: i32 = 6;
850 pub const EFFECT_ITEM_TYPE_COLOR: i32 = 7;
852 pub const EFFECT_ITEM_TYPE_SELECT: i32 = 8;
854 pub const EFFECT_ITEM_TYPE_SCENE: i32 = 9;
856 pub const EFFECT_ITEM_TYPE_RANGE: i32 = 10;
858 pub const EFFECT_ITEM_TYPE_COMBO: i32 = 11;
860 pub const EFFECT_ITEM_TYPE_MASK: i32 = 12;
862 pub const EFFECT_ITEM_TYPE_FONT: i32 = 13;
864 pub const EFFECT_ITEM_TYPE_FIGURE: i32 = 14;
866 pub const EFFECT_ITEM_TYPE_DATA: i32 = 15;
868 pub const EFFECT_ITEM_TYPE_FOLDER: i32 = 16;
870 pub const EFFECT_ITEM_TYPE_NUMBER_GROUP: i32 = 17;
872 pub const EFFECT_ITEM_TYPE_GROUP: i32 = 18;
874 pub const EFFECT_ITEM_TYPE_SEPARATOR: i32 = 19;
876}
877
878#[repr(C)]
882pub struct PROJECT_FILE {
883 pub get_param_string: unsafe extern "C" fn(key: LPCSTR) -> LPCSTR,
887 pub set_param_string: unsafe extern "C" fn(key: LPCSTR, value: LPCSTR),
891 pub get_param_binary: unsafe extern "C" fn(key: LPCSTR, data: *mut c_void, size: i32) -> bool,
897 pub set_param_binary: unsafe extern "C" fn(key: LPCSTR, data: *mut c_void, size: i32),
902 pub clear_params: unsafe extern "C" fn(),
904
905 pub get_project_file_path: unsafe extern "C" fn() -> LPCWSTR,
909}
910
911#[repr(C)]
913pub struct HOST_APP_TABLE {
914 #[deprecated(note = "現在はGetCommonPluginTable()を利用する方法が推奨になります")]
917 pub set_plugin_information: unsafe extern "C" fn(information: LPCWSTR),
918
919 pub register_input_plugin: unsafe extern "C" fn(input_plugin_table: *mut INPUT_PLUGIN_TABLE),
922 pub register_output_plugin: unsafe extern "C" fn(output_plugin_table: *mut OUTPUT_PLUGIN_TABLE),
925 pub register_filter_plugin: unsafe extern "C" fn(filter_plugin_table: *mut FILTER_PLUGIN_TABLE),
928 pub register_script_module: unsafe extern "C" fn(script_module_table: *mut SCRIPT_MODULE_TABLE),
931
932 pub register_import_menu: unsafe extern "C" fn(
936 name: LPCWSTR,
937 func_proc_import: unsafe extern "C" fn(*mut EDIT_SECTION),
938 ),
939 pub register_export_menu: unsafe extern "C" fn(
943 name: LPCWSTR,
944 func_proc_export: unsafe extern "C" fn(*mut EDIT_SECTION),
945 ),
946
947 pub register_window_client: unsafe extern "C" fn(name: LPCWSTR, hwnd: HWND),
952
953 pub create_edit_handle: unsafe extern "C" fn() -> *mut EDIT_HANDLE,
956
957 pub register_project_load_handler:
960 unsafe extern "C" fn(func_project_load: unsafe extern "C" fn(*mut PROJECT_FILE)),
961 pub register_project_save_handler:
964 unsafe extern "C" fn(func_project_save: unsafe extern "C" fn(*mut PROJECT_FILE)),
965
966 pub register_layer_menu: unsafe extern "C" fn(
970 name: LPCWSTR,
971 func_proc_layer_menu: unsafe extern "C" fn(*mut EDIT_SECTION),
972 ),
973
974 pub register_object_menu: unsafe extern "C" fn(
978 name: LPCWSTR,
979 func_proc_object_menu: unsafe extern "C" fn(*mut EDIT_SECTION),
980 ),
981
982 pub register_config_menu:
987 unsafe extern "C" fn(name: LPCWSTR, func_config: unsafe extern "C" fn(HWND, HINSTANCE)),
988
989 pub register_edit_menu: unsafe extern "C" fn(
993 name: LPCWSTR,
994 func_proc_edit_menu: unsafe extern "C" fn(*mut EDIT_SECTION),
995 ),
996
997 pub register_clear_cache_handler:
1000 unsafe extern "C" fn(func_proc_clear_cache: unsafe extern "C" fn(*mut EDIT_SECTION)),
1001
1002 pub register_change_scene_handler:
1005 unsafe extern "C" fn(func_proc_change_scene: unsafe extern "C" fn(*mut EDIT_SECTION)),
1006
1007 pub register_import_menu_param: unsafe extern "C" fn(
1013 name: LPCWSTR,
1014 param: *mut c_void,
1015 func_proc_import: unsafe extern "C" fn(param: *mut c_void),
1016 ),
1017
1018 pub register_export_menu_param: unsafe extern "C" fn(
1024 name: LPCWSTR,
1025 param: *mut c_void,
1026 func_proc_export: unsafe extern "C" fn(param: *mut c_void),
1027 ),
1028
1029 pub register_layer_menu_param: unsafe extern "C" fn(
1035 name: LPCWSTR,
1036 param: *mut c_void,
1037 func_proc_layer_menu: unsafe extern "C" fn(param: *mut c_void),
1038 ),
1039
1040 pub register_object_menu_param: unsafe extern "C" fn(
1046 name: LPCWSTR,
1047 param: *mut c_void,
1048 func_proc_object_menu: unsafe extern "C" fn(param: *mut c_void),
1049 ),
1050
1051 pub register_edit_menu_param: unsafe extern "C" fn(
1057 name: LPCWSTR,
1058 param: *mut c_void,
1059 func_proc_edit_menu: unsafe extern "C" fn(param: *mut c_void),
1060 ),
1061
1062 pub register_file_drop_handler: unsafe extern "C" fn(
1067 name: LPCWSTR,
1068 filefilter: LPCWSTR,
1069 func_proc_file_drop: unsafe extern "C" fn(edit_section: *mut EDIT_SECTION, file: LPCWSTR),
1070 ),
1071
1072 pub register_file_drop_param_handler: unsafe extern "C" fn(
1078 name: LPCWSTR,
1079 filefilter: LPCWSTR,
1080 param: *mut c_void,
1081 func_proc_file_drop: unsafe extern "C" fn(param: *mut c_void, file: LPCWSTR),
1082 ),
1083
1084 pub register_object_item_menu: unsafe extern "C" fn(
1090 name: LPCWSTR,
1091 allow_effect_only: bool,
1092 func_proc_item_menu: unsafe extern "C" fn(
1093 edit: *mut EDIT_SECTION,
1094 object: OBJECT_HANDLE,
1095 effect: LPCWSTR,
1096 item: LPCWSTR,
1097 ),
1098 ),
1099
1100 pub register_object_item_menu_param: unsafe extern "C" fn(
1108 name: LPCWSTR,
1109 allow_effect_only: bool,
1110 param: *mut c_void,
1111 func_proc_item_menu: unsafe extern "C" fn(
1112 param: *mut c_void,
1113 object: OBJECT_HANDLE,
1114 effect: LPCWSTR,
1115 item: LPCWSTR,
1116 ),
1117 ),
1118
1119 pub register_script_module_name:
1123 unsafe extern "C" fn(script_module_table: *mut SCRIPT_MODULE_TABLE, module_name: LPCWSTR),
1124
1125 pub register_font_collection: unsafe extern "C" fn(collection: *mut std::ffi::c_void),
1128
1129 pub register_event_listener: unsafe extern "C" fn(
1131 r#type: EVENT_TYPE,
1132 param: *mut c_void,
1133 func_proc_event: unsafe extern "C" fn(param: *mut c_void),
1134 ),
1135}