Show filter.h syntax highlighted
#pragma once
typedef struct {short y, cb, cr;} PIXEL_YC;
typedef struct {unsigned char b, g, r;} PIXEL;
// tB^PROCp\¢Ì
typedef struct {
int flag; // tB^ÌtO
PIXEL_YC *ycp_edit; // æf[^ÖÌ|C^
PIXEL_YC *ycp_temp; // e|ÌæÖÌ|C^
int w,h; // »ÝÌæÌTCY
int max_w,max_h; // æÌæÌTCY
int frame; // »ÝÌt[Ô(ÔÍ0©ç)
int frame_n; // t[
int org_w,org_h; // ³ÌæÌTCY
short *audiop; // I[fBIf[^ÖÌ|C^ ( I[fBItB^ÌÌÝ )
// I[fBI`®ÍPCM16bitÅ· ( 1TvÍ mono = 2byte , stereo = 4byte )
int audio_n; // I[fBITvÌ
int audio_ch; // I[fBI`l
PIXEL *pixelp; // DIB`®Ìf[^ÖÌ|C^( \¦tB^ÌÌÝ )
void *editp; // GfBbgnh
int reserve[10]; // g£pÉ\ñ³êÄÜ·
} FILTER_PROC_INFO;
#define FILTER_PROC_INFO_FLAG_FILL_OVERAREA 1
#define FILTER_PROC_INFO_FLAG_MASK 0x0fffffff
// t[Xe[^X\¢Ì
typedef struct {
int video; // ÀÛÌff[^Ô
int audio; // ÀÛ̹ºf[^Ô
int inter; // t[ÌC^[[X
// FRAME_STATUS_INTER_NORMAL : W
// FRAME_STATUS_INTER_REVERSE : ½]
// FRAME_STATUS_INTER_ODD : ï
// FRAME_STATUS_INTER_EVEN : ô
// FRAME_STATUS_INTER_MIX : ñd»
// FRAME_STATUS_INTER_AUTO : ©®
int index24fps; // 24fpÌüú
int config; // t[ÌÝè«ÌÔ
int vcm; // t[̳kÝèÌÔ
int edit_flag; // ÒWtO
// EDIT_FRAME_EDIT_FLAG_KEYFRAME : L[t[
// EDIT_FRAME_EDIT_FLAG_MARKFRAME : }[Nt[
// EDIT_FRAME_EDIT_FLAG_DELFRAME : DæÔø«t[
// EDIT_FRAME_EDIT_FLAG_NULLFRAME : Rs[t[
int reserve[9]; // g£pÉ\ñ³êÄÜ·
} FRAME_STATUS;
#define FRAME_STATUS_INTER_NORMAL 0
#define FRAME_STATUS_INTER_REVERSE 1
#define FRAME_STATUS_INTER_ODD 2
#define FRAME_STATUS_INTER_EVEN 3
#define FRAME_STATUS_INTER_MIX 4
#define FRAME_STATUS_INTER_AUTO 5
#define EDIT_FRAME_EDIT_FLAG_KEYFRAME 1
#define EDIT_FRAME_EDIT_FLAG_MARKFRAME 2
#define EDIT_FRAME_EDIT_FLAG_DELFRAME 4
#define EDIT_FRAME_EDIT_FLAG_NULLFRAME 8
// t@CCtH[V\¢Ì
typedef struct {
int flag; // t@CÌtO
// FILE_INFO_FLAG_VIDEO : fª¶Ý·é
// FILE_INFO_FLAG_AUDIO : ¹ºª¶Ý·é
LPSTR name; // ÒWt@C¼
int w,h; // ³ÌTCY
int video_rate,video_scale; // t[[g
int audio_rate; // ¹ºTvO[g
int audio_ch; // ¹º`l
int reserve[8]; // g£pÉ\ñ³êÄÜ·
} FILE_INFO;
#define FILE_INFO_FLAG_VIDEO 1
#define FILE_INFO_FLAG_AUDIO 2
// VXeCtH[V\¢Ì
typedef struct {
int flag; // VXetO
// SYS_INFO_FLAG_EDIT : ÒW
// SYS_INFO_FLAG_VFAPI : VFAPI®ì
LPSTR info; // o[Wîñ
int filter_n; // o^³êÄétB^Ì
int min_w,min_h; // ÒWoéŬæTCY
int max_w,max_h; // ÒWoéÅåæTCY
int max_frame; // ÒWoéÅåt[
LPSTR edit_name; // ÒWt@C¼ (t@C¼ªÜÁĢȢͽàüÁĢܹñ)
LPSTR project_name; // vWFNgt@C¼ (t@C¼ªÜÁĢȢͽàüÁĢܹñ)
LPSTR output_name; // oÍt@C¼ (t@C¼ªÜÁĢȢͽàüÁĢܹñ)
int reserve[8]; // g£pÉ\ñ³êÄÜ·
} SYS_INFO;
#define SYS_INFO_FLAG_EDIT 1
#define SYS_INFO_FLAG_VFAPI 2
// OÖ\¢Ì
typedef struct {
void *(*get_ycp_ofs)( void *editp,int n,int ofs );
// wèµ½t[ÌAVIt@CãÅÌItZbgªÚ®µ½
// t[Ìæf[^Ì|C^ðæ¾µÜ·
// f[^ÍtB^OÌàÌÅ·
// editp : GfBbgnh
// n : t[Ô
// ofs : t[©çÌItZbg
// ßèl : æf[^ÖÌ|C^ (NULLÈç¸s)
void *(*get_ycp)( void *editp,int n );
// wèµ½t[Ìæf[^Ì|C^ðæ¾µÜ·
// f[^ÍtB^OÌàÌÅ·
// editp : GfBbgnh
// n : t[Ô
// ßèl : æf[^ÖÌ|C^ (NULLÈç¸s)
void *(*get_pixelp)( void *editp,int n );
// wèµ½t[ÌDIB`®(RGB24bit)Ìæf[^Ì|C^ðæ¾µÜ·
// f[^ÍtB^OÌàÌÅ·
// editp : GfBbgnh
// n : t[Ô
// ßèl : DIB`®f[^ÖÌ|C^ (NULLÈç¸s)
int (*get_audio)( void *editp,int n,void *buf );
// wèµ½t[ÌI[fBIf[^ðÇÝÝÜ·
// f[^ÍtB^OÌàÌÅ·
// editp* : GfBbgnh
// n : t[Ô
// buf : i[·éobt@
// ßèl : ÇÝñ¾Tv
BOOL (*is_editing)( void *editp );
// »ÝÒW©²×Ü·
// editp : GfBbgnh
// ßèl : TRUEÈçÒW
BOOL (*is_saving)( void *editp );
// »ÝÛ¶©²×Ü·
// editp : GfBbgnh
// ßèl : TRUEÈçÛ¶
int (*get_frame)( void *editp );
// »ÝÌ\¦t[ðæ¾µÜ·
// editp : GfBbgnh
// ßèl : »ÝÌt[Ô
int (*get_frame_n)( void *editp );
// t[ðæ¾µÜ·
// editp : GfBbgnh
// ßèl : »ÝÌt[
BOOL (*get_frame_size)( void *editp,int *w,int *h );
// tB^OÌt[ÌTCYðæ¾µÜ·
// editp : GfBbgnh
// w,h : æTCYÌi[|C^
// ßèl : TRUEÈç¬÷
int (*set_frame)( void *editp,int n );
// »ÝÌ\¦t[ðÏXµÜ·
// editp : GfBbgnh
// n : t[Ô
// ßèl : Ýè³ê½t[Ô
int (*set_frame_n)( void *editp,int n );
// t[ðÏXµÜ·
// editp : GfBbgnh
// n : t[
// ßèl : Ýè³ê½t[
BOOL (*copy_frame)( void *editp,int d,int s );
// t[ð¼Ìt[ÉRs[µÜ·
// editp : GfBbgnh
// d : Rs[æt[Ô
// s : Rs[³t[Ô
// ßèl : TRUEÈç¬÷
BOOL (*copy_video)( void *editp,int d,int s );
// t[Ìf¾¯ð¼Ìt[ÉRs[µÜ·
// editp : GfBbgnh
// d : Rs[æt[Ô
// s : Rs[³t[Ô
// ßèl : TRUEÈç¬÷
BOOL (*copy_audio)( void *editp,int d,int s );
// t[̹º¾¯ð¼Ìt[ÉRs[µÜ·
// editp : GfBbgnh
// d : Rs[æt[Ô
// s : Rs[³t[Ô
// ßèl : TRUEÈç¬÷
BOOL (*copy_clip)( HWND hwnd,void *pixelp,int w,int h );
// Nbv{[hÉDIB`®(RGB24bit)ÌæðRs[µÜ·
// hwnd : EBhEnh
// pixelp : DIB`®f[^ÖÌ|C^
// w,h : æTCY
// ßèl : TRUEÈç¬÷
BOOL (*paste_clip)( HWND hwnd,void *editp,int n );
// Nbv{[h©çæð£è¯ܷ
// hwnd : EBhEnh
// editp : GfBbgnh
// n : t[Ô
// ßèl : TRUEÈç¬÷
BOOL (*get_frame_status)( void *editp,int n,FRAME_STATUS *fsp );
// t[ÌXe[^Xðæ¾µÜ·
// editp : GfBbgnh
// n : t[Ô
// fps : t[Xe[^XÖÌ|C^
// ßèl : TRUEÈç¬÷
BOOL (*set_frame_status)( void *editp,int n,FRAME_STATUS *fsp );
// t[ÌXe[^XðÏXµÜ·
// editp : GfBbgnh
// n : t[Ô
// fps : t[Xe[^XÖÌ|C^
// ßèl : TRUEÈç¬÷
BOOL (*is_saveframe)( void *editp,int n );
// ÀÛÉÛ¶³êét[©²×Ü·
// editp : GfBbgnh
// n : t[Ô
// ßèl : TRUEÈçÛ¶³êÜ·
BOOL (*is_keyframe)( void *editp,int n );
// L[t[©Ç¤©²×Ü·
// editp : GfBbgnh
// n : t[Ô
// ßèl : TRUEÈçL[t[
BOOL (*is_recompress)( void *editp,int n );
// ijkªKv©²×Ü·
// editp : GfBbgnh
// n : t[Ô
// ßèl : TRUEÈçijkªKv
BOOL (*filter_window_update)( void *fp );
// ÝèEBhEÌgbNo[Æ`FbN{bNXðÄ`æµÜ·
// fp : tB^\¢ÌÌ|C^
// ßèl : TRUEÈç¬÷
BOOL (*is_filter_window_disp)( void *fp );
// ÝèEBhEª\¦³êĢ驲×Ü·
// fp : tB^\¢ÌÌ|C^
// ßèl : TRUEÈç\¦³êÄ¢é
BOOL (*get_file_info)( void *editp,FILE_INFO *fip );
// ÒWt@CÌîñðæ¾µÜ·
// editp : GfBbgnh
// fip : t@CCtH[V\¢ÌÖÌ|C^
// ßèl : TRUEÈç¬÷
LPSTR (*get_config_name)( void *editp,int n );
// Ýè«̼Oðæ¾µÜ·
// editp : GfBbgnh
// n : Ýè«ÌÔ
// ßèl : Ýè«̼OÖÌ|C^
BOOL (*is_filter_active)( void *fp );
// tB^ªLøÉÈÁĢ驲×Ü·
// fp : tB^\¢ÌÌ|C^
// ßèl : TRUEÈçtB^Lø
BOOL (*get_pixel_filtered)( void *editp,int n,void *pixelp,int *w,int *h );
// wèµ½t[ÌDIB`®(RGB24bit)Ìæf[^ðÇÝÝÜ·
// f[^ÍtB^ãÌàÌÅ·
// editp : GfBbgnh
// n : t[Ô
// pixelp : DIB`®f[^ði[·é|C^ (NULLÈçæTCY¾¯ðԵܷ)
// w,h : æÌTCY (NULLÈçDIB`®f[^¾¯ðԵܷ)
// ßèl : TRUEÈç¬÷
int (*get_audio_filtered)( void *editp,int n,void *buf );
// wèµ½t[ÌI[fBIf[^ðÇÝÝÜ·
// f[^ÍtB^ãÌàÌÅ·
// editp* : GfBbgnh
// n : t[Ô
// buf : i[·éobt@
// ßèl : ÇÝñ¾Tv
BOOL (*get_select_frame)( void *editp,int *s,int *e );
// IðJnI¹t[ðæ¾µÜ·
// editp : GfBbgnh
// s : IðJnt[
// e : IðI¹t[
// ßèl : TRUEÈç¬÷
BOOL (*set_select_frame)( void *editp,int s,int e );
// IðJnI¹t[ðÝèµÜ·
// editp : GfBbgnh
// s : IðJnt[
// e : IðI¹t[
// ßèl : TRUEÈç¬÷
BOOL (*rgb2yc)( PIXEL_YC *ycp,PIXEL *pixelp,int w );
// PIXEL©çPIXEL_YCÉÏ·µÜ·
// ycp : PIXEL_YC\¢ÌÖÌ|C^
// pixelp : PIXEL\¢ÌÖÌ|C^
// w : \¢ÌÌ
// ßèl : TRUEÈç¬÷
BOOL (*yc2rgb)( PIXEL *pixelp,PIXEL_YC *ycp,int w );
// PIXEL_YC©çPIXELÉÏ·µÜ·
// pixelp : PIXEL\¢ÌÖÌ|C^
// ycp : PIXEL_YC\¢ÌÖÌ|C^
// w : \¢ÌÌ
// ßèl : TRUEÈç¬÷
BOOL (*dlg_get_load_name)( LPSTR name,LPSTR filter,LPSTR def );
// t@C_CAOðgÁÄÇÝÞt@C¼ð澵ܷ
// name : t@C¼ði[·é|C^
// filter : t@CtB^
// def : ftHgÌt@C¼
// ßèl : TRUEÈç¬÷ FALSEÈçLZ
BOOL (*dlg_get_save_name)( LPSTR name,LPSTR filter,LPSTR def );
// t@C_CAOðgÁÄ«Þt@C¼ð澵ܷ
// name : t@C¼ði[·é|C^
// filter : t@CtB^
// def : ftHgÌt@C¼
// ßèl : TRUEÈç¬÷ FALSEÈçLZ
int (*ini_load_int)( void *fp,LPSTR key,int n );
// INIt@C©çlðÇÝÞ
// fp : tB^\¢ÌÌ|C^
// key : ANZXpÌL[̼O
// n : ftHgÌl
// ßèl : ÇÝñ¾l
int (*ini_save_int)( void *fp,LPSTR key,int n );
// INIt@CÉlð«Þ
// fp : tB^\¢ÌÌ|C^
// key : ANZXpÌL[̼O
// n : «Þl
// ßèl : «ñ¾l
BOOL (*ini_load_str)( void *fp,LPSTR key,LPSTR str,LPSTR def );
// INIt@C©ç¶ñðÇÝÞ
// fp : tB^\¢ÌÌ|C^
// key : ANZXpÌL[̼O
// str : ¶ñðÇÝÞobt@
// def : ftHg̶ñ
// ßèl : TRUEÈç¬÷
BOOL (*ini_save_str)( void *fp,LPSTR key,LPSTR str );
// INIt@Cɶñð«Þ
// fp : tB^\¢ÌÌ|C^
// key : ANZXpÌL[̼O
// n : «Þ¶ñ
// ßèl : TRUEÈç¬÷
BOOL (*get_source_file_info)( void *editp,FILE_INFO *fip,int source_file_id );
// wèµ½t@CIDÌt@CÌîñðæ¾µÜ·
// editp : GfBbgnh
// fip : t@CCtH[V\¢ÌÖÌ|C^
// souce_file_id
// : t@CID
// ßèl : TRUEÈç¬÷
BOOL (*get_source_video_number)( void *editp,int n,int *source_file_id,int *source_video_number );
// wèµ½t[Ì\[XÌt@CIDÆt[Ôðæ¾µÜ·
// editp : GfBbgnh
// n : t[Ô
// souce_file_id
// : t@CIDði[·é|C^
// souce_video_number
// : t[Ôði[·é|C^
// ßèl : TRUEÈç¬÷
BOOL (*get_sys_info)( void *editp,SYS_INFO *sip );
// VXeÌîñðæ¾µÜ·
// editp : GfBbgnh
// sip : VXeCtH[V\¢ÌÖÌ|C^
// ßèl : TRUEÈç¬÷
void *(*get_filterp)( int filter_id );
// wèÌtB^IDÌtB^\¢ÌÖÌ|C^ðæ¾µÜ·
// filter_id
// : tB^ID (0`o^³êÄétB^Ì-1ÜÅÌl)
// ßèl : tB^\¢ÌÖÌ|C^ (NULLÈç¸s)
int reserve[6];
} EXFUNC;
// tB^\¢Ì
typedef struct {
int flag; // tB^ÌtO
// FILTER_FLAG_ALWAYS_ACTIVE : tB^ðíÉANeBuɵܷ
// FILTER_FLAG_CONFIG_POPUP : Ýèð|bvAbvj
[ɵܷ
// FILTER_FLAG_CONFIG_CHECK : Ýèð`FbN{bNXj
[ɵܷ
// FILTER_FLAG_CONFIG_RADIO : ÝèðWI{^j
[ɵܷ
// FILTER_FLAG_EX_DATA : g£f[^ðÛ¶o鿤ɵܷ
// FILTER_FLAG_PRIORITY_HIGHEST : tB^ÌvCIeBðíÉÅãÊɵܷ
// FILTER_FLAG_PRIORITY_LOWEST : tB^ÌvCIeBðíÉźÊɵܷ
// FILTER_FLAG_WINDOW_THICKFRAME : TCYÏXÂ\ÈEBhEðìèÜ·
// FILTER_FLAG_WINDOW_SIZE : ÝèEBhEÌTCYðwèo鿤ɵܷ
// FILTER_FLAG_DISP_FILTER : \¦tB^ɵܷ
// FILTER_FLAG_REDRAW : Ä`æðplugin¤Å·éæ¤ÉµÜ·
// FILTER_FLAG_EX_INFORMATION : tB^Ìg£îñðÝèū鿤ɵܷ
// FILTER_FLAG_INFORMATION : FILTER_FLAG_EX_INFORMATION ðg¤æ¤ÉµÄº³¢
// FILTER_FLAG_NO_CONFIG : ÝèEBhEð\¦µÈ¢æ¤ÉµÜ·
// FILTER_FLAG_AUDIO_FILTER : I[fBItB^ɵܷ
// FILTER_FLAG_RADIO_BUTTON : `FbN{bNXðWI{^ɵܷ
// FILTER_FLAG_WINDOW_HSCROLL :
½XN[o[ðÂEBhEðìèÜ·
// FILTER_FLAG_WINDOW_VSCROLL : ¼XN[o[ðÂEBhEðìèÜ·
// FILTER_FLAG_IMPORT : C|[gj
[ðìèÜ·
// FILTER_FLAG_EXPORT : GNX|[gj
[ðìèÜ·
int x,y; // ÝèEChEÌTCY (FILTER_FLAG_WINDOW_SIZEª§ÁÄ¢éÉLø)
TCHAR *name; // tB^̼O
int track_n; // gbNo[Ì
TCHAR **track_name; // gbNo[̼OSÖÌ|C^(gbNo[ª0ÈçNULLÅæ¢)
int *track_default; // gbNo[ÌúlSÖÌ|C^(gbNo[ª0ÈçNULLÅæ¢)
int *track_s,*track_e; // gbNo[Ìl̺ÀãÀ (NULLÈçSÄ0`256)
int check_n; // `FbN{bNXÌ
TCHAR **check_name; // `FbN{bNX̼OSÖÌ|C^(`FbN{bNXª0ÈçNULLÅæ¢)
int *check_default; // `FbN{bNXÌúlSÖÌ|C^(`FbN{bNXª0ÈçNULLÅæ¢)
BOOL (*func_proc)( void *fp,FILTER_PROC_INFO *fpip );
// tB^ÖÖÌ|C^ (NULLÈçÄÎêܹñ)
BOOL (*func_init)( void *fp );
// JnÉÄÎêéÖÖÌ|C^ (NULLÈçÄÎêܹñ)
BOOL (*func_exit)( void *fp );
// I¹ÉÄÎêéÖÖÌ|C^ (NULLÈçÄÎêܹñ)
BOOL (*func_update)( void *fp );
// ÝèªÏX³ê½Æ«ÉÄÎêéÖÖÌ|C^ (NULLÈçÄÎêܹñ)
BOOL (*func_WndProc)( HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam,void *editp,void *fp );
// ÝèEBhEÉEBhEbZ[Wª½ÉÄÎêéÖÖÌ|C^ (NULLÈçÄÎêܹñ)
// ÊíÌbZ[WÈOÉȺÌg£bZ[WªçêÜ·
// WM_FILTER_UPDATE : tB^ÝèâÒWàeªÏX³ê½¼ãÉçêÜ·
// WM_FILTER_FILE_OPEN : ÒWt@CªI[v³ê½¼ãÉçêÜ·
// WM_FILTER_FILE_CLOSE : ÒWt@CªN[Y³êé¼OÉçêÜ·
// WM_FILTER_INIT : Jn¼ãÉçêÜ·
// WM_FILTER_EXIT : I¹¼OÉçêÜ·
// WM_FILTER_SAVE_START : Z[uªJn³êé¼OÉçêÜ·
// WM_FILTER_SAVE_END : Z[uªI¹³ê½¼ãÉçêÜ·
// WM_FILTER_IMPORT : C|[gªIð³ê½¼ãÉçêÜ·
// WM_FILTER_EXPORT : GNX|[gªIð³ê½¼ãÉçêÜ·
// ßèlðTRUEÉ·éÆÒWàeªXV³ê½ÆµÄS̪Ä`æ³êÜ·
int *track,*check; // VXeÅg¢Ü·ÌÅgpµÈ¢Å¾³¢
void *ex_data_ptr; // g£f[^ÌæÖÌ|C^ (FILTER_FLAG_EX_DATAª§ÁÄ¢éÉLø)
int ex_data_size; // g£f[^TCY (FILTER_FLAG_EX_DATAª§ÁÄ¢éÉLø)
TCHAR *information; // tB^îñÖÌ|C^ (FILTER_FLAG_EX_INFORMATIONª§ÁÄ¢éÉLø)
BOOL (*func_save_start)( void *fp,int s,int e,void *editp );
// Z[uªJn³êé¼OÉÄÎêéÖÖÌ|C^ (NULLÈçÄÎêܹñ)
BOOL (*func_save_end)( void *fp,void *editp );
// Z[uªI¹µ½¼OÉÄÎêéÖÖÌ|C^ (NULLÈçÄÎêܹñ)
EXFUNC *exfunc; // OÖe[uÖÌ|C^
HWND hwnd; // EBhEnh
HINSTANCE dll_hinst; // DLLÌCX^Xnh
int reserve[8]; // g£pÉ\ñ³êÄÜ·
} FILTER;
#define FILTER_FLAG_ACTIVE 1
#define FILTER_FLAG_ALWAYS_ACTIVE 4
#define FILTER_FLAG_CONFIG_POPUP 8
#define FILTER_FLAG_CONFIG_CHECK 16
#define FILTER_FLAG_CONFIG_RADIO 32
#define FILTER_FLAG_EX_DATA 1024
#define FILTER_FLAG_PRIORITY_HIGHEST 2048
#define FILTER_FLAG_PRIORITY_LOWEST 4096
#define FILTER_FLAG_WINDOW_THICKFRAME 8192
#define FILTER_FLAG_WINDOW_SIZE 16384
#define FILTER_FLAG_DISP_FILTER 32768
#define FILTER_FLAG_REDRAW 0x20000
#define FILTER_FLAG_EX_INFORMATION 0x40000
#define FILTER_FLAG_INFORMATION 0x80000
#define FILTER_FLAG_NO_CONFIG 0x100000
#define FILTER_FLAG_AUDIO_FILTER 0x200000
#define FILTER_FLAG_RADIO_BUTTON 0x400000
#define FILTER_FLAG_WINDOW_HSCROLL 0x800000
#define FILTER_FLAG_WINDOW_VSCROLL 0x1000000
#define FILTER_FLAG_IMPORT 0x10000000
#define FILTER_FLAG_EXPORT 0x20000000
#define WM_FILTER_UPDATE (WM_USER+100)
#define WM_FILTER_FILE_OPEN (WM_USER+101)
#define WM_FILTER_FILE_CLOSE (WM_USER+102)
#define WM_FILTER_INIT (WM_USER+103)
#define WM_FILTER_EXIT (WM_USER+104)
#define WM_FILTER_SAVE_START (WM_USER+105)
#define WM_FILTER_SAVE_END (WM_USER+106)
#define WM_FILTER_IMPORT (WM_USER+107)
#define WM_FILTER_EXPORT (WM_USER+108)
// tB^DLLp\¢Ì
typedef struct {
int flag;
int x,y;
TCHAR *name;
int track_n;
TCHAR **track_name;
int *track_default;
int *track_s,*track_e;
int check_n;
TCHAR **check_name;
int *check_default;
BOOL (*func_proc)( FILTER *fp,FILTER_PROC_INFO *fpip );
BOOL (*func_init)( FILTER *fp );
BOOL (*func_exit)( FILTER *fp );
BOOL (*func_update)( FILTER *fp );
BOOL (*func_WndProc)( HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam,void *editp,FILTER *fp );
int *track,*check;
void *ex_data_ptr;
int ex_data_size;
TCHAR *information;
BOOL (*func_save_start)( void *fp,int s,int e,void *editp );
BOOL (*func_save_end)( void *fp,void *editp );
EXFUNC *exfunc;
HWND hwnd;
HINSTANCE dll_hinst;
int reserve[8];
} FILTER_DLL;
#define MID_FILTER_BUTTON 12004
BOOL func_proc( FILTER *fp,FILTER_PROC_INFO *fpip );
BOOL func_init( FILTER *fp );
BOOL func_exit( FILTER *fp );
BOOL func_update( FILTER *fp );
BOOL func_WndProc( HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam,void *editp,FILTER *fp );
BOOL func_save_start( FILTER *fp,int s,int e,void *editp );
BOOL func_save_end( FILTER *fp,void *editp );
See more files for this project here