]> git.sesse.net Git - vlc/blob - modules/gui/wince/wince.h
* Allow all MJPEG fourcc
[vlc] / modules / gui / wince / wince.h
1 /*****************************************************************************
2  * wince.h: private WinCE interface descriptor
3  *****************************************************************************
4  * Copyright (C) 1999-2004 VideoLAN
5  * $Id$
6  *
7  * Authors: Gildas Bazin <gbazin@videolan.org>
8  *          Marodon Cedric <cedric_marodon@yahoo.fr>
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
23  *****************************************************************************/
24
25 #ifndef WINCE_RESOURCE
26
27 #define SLIDER_HEIGHT 50
28 #define SLIDER_MAX_POS 10000
29 #define MENU_HEIGHT 26
30
31 #define FILE_ACCESS 1
32 #define NET_ACCESS 2
33
34 #define OPEN_NORMAL 0
35 #define OPEN_STREAM 1
36
37 #if defined( UNDER_CE ) && defined(__MINGW32__)
38     /* This is a gross hack for the wince gcc cross-compiler */
39 #   define _off_t long
40 #endif
41
42 #include "vlc_keys.h"
43
44 #include <stdio.h>
45 #include <string>
46 #include <vector>
47 using namespace std; 
48
49 vector<string> SeparateEntries( TCHAR *entries );
50
51 class MenuItemExt;
52 class VideoWindow;
53
54 /*****************************************************************************
55  * intf_sys_t: description and status of wxwindows interface
56  *****************************************************************************/
57 struct intf_sys_t
58 {
59     /* special actions */
60     vlc_bool_t          b_playing;
61
62     /* The input thread */
63     input_thread_t *    p_input;
64
65     /* The slider */
66     int                 i_slider_pos;                     /* slider position */
67     int                 i_slider_oldpos;                /* previous position */
68     vlc_bool_t          b_slider_free;                      /* slider status */
69
70     /* The messages window */
71     msg_subscription_t* p_sub;                  /* message bank subscription */
72
73     /* Playlist management */
74     int                 i_playing;                 /* playlist selected item */
75
76     /* Send an event to show a dialog */
77     void (*pf_show_dialog) ( intf_thread_t *p_intf, int i_dialog, int i_arg,
78                              intf_dialog_args_t *p_arg );
79
80     /* Dynamic Menu management */
81     vector<MenuItemExt*> *p_audio_menu;
82     vector<MenuItemExt*> *p_video_menu;
83     vector<MenuItemExt*> *p_navig_menu;
84     vector<MenuItemExt*> *p_settings_menu;
85
86     VideoWindow          *p_video_window;
87 };
88
89 /*****************************************************************************
90  * Prototypes
91  *****************************************************************************/
92
93 class CBaseWindow
94 {
95 public:
96    CBaseWindow(){ hInst = 0; }
97    virtual ~CBaseWindow() {};
98
99    HWND hWnd;                // The main window handle
100    BOOL DlgFlag;             // True if object is a dialog window
101
102    static LRESULT CALLBACK BaseWndProc( HWND hwnd, UINT msg,
103                                         WPARAM wParam, LPARAM lParam );
104
105 protected:
106
107    HINSTANCE       hInst;               // The current instance
108    HWND            hwndCB;              // The command bar handle
109
110    HINSTANCE       GetInstance () const { return hInst; }
111    virtual LRESULT WndProc( HWND hwnd, UINT msg,
112                             WPARAM wParam, LPARAM lParam,
113                             PBOOL pbProcessed ){*pbProcessed = FALSE; return 0;}
114 };
115
116 class FileInfo;
117 class Messages;
118 class Playlist;
119 class Timer;
120 class OpenDialog;
121 class PrefsDialog;
122
123 CBaseWindow *CreateVideoWindow( intf_thread_t *, HINSTANCE, HWND );
124
125 /* Main Interface */
126 class Interface : public CBaseWindow
127 {
128 public:
129     /* Constructor */
130     Interface(){}
131     ~Interface(){}
132
133     BOOL InitInstance( HINSTANCE hInstance, intf_thread_t *_pIntf );
134
135     void TogglePlayButton( int i_playing_status );
136
137     HWND hwndMain;      // Handle to the main window.
138
139     HWND hwndCB;        // Handle to the command bar (contains menu)
140     HWND hwndTB;        // Handle to the toolbar.
141     HWND hwndSlider;       // Handle to the Sliderbar.
142     HWND hwndLabel;
143     HWND hwndVol;          // Handle to the volume trackbar.
144     HWND hwndSB;        // Handle to the status bar.
145     HMENU hPopUpMenu;
146     HMENU hMenu;
147     FileInfo *fi; // pas besoin de la plupart de ses attributs
148     Messages *hmsg;
149     PrefsDialog *pref;
150     Playlist *pl;
151     Timer *ti;
152     OpenDialog *open;
153     CBaseWindow *video;
154     HWND hwndVideo;
155
156 protected:
157
158     virtual LRESULT WndProc( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp,
159                              PBOOL pbProcessed );
160
161     void OnOpenFileSimple( void );
162     void OnPlayStream( void );
163     void OnVideoOnTop( void );
164
165     void OnSliderUpdate( int wp );
166     void OnChange( int wp );
167     void Change( int i_volume );
168     void OnStopStream( void );
169     void OnPrevStream( void );
170     void OnNextStream( void );
171     void OnSlowStream( void );
172     void OnFastStream( void );
173
174     intf_thread_t *pIntf;
175
176     int i_old_playing_status;
177 };
178
179 /* File Info */
180 class FileInfo : public CBaseWindow
181 {
182 public:
183     /* Constructor */
184     FileInfo( intf_thread_t *_p_intf, HINSTANCE _hInst );
185     virtual ~FileInfo(){};
186
187 protected:
188
189     HWND hwnd_fileinfo;                 // handle to fileinfo window
190     HWND hwndTV;                                // handle to tree-view control 
191     intf_thread_t *p_intf;
192
193     TCHAR szFileInfoClassName[100];     // Main window class name
194     TCHAR szFileInfoTitle[100];         // Main window name
195
196     virtual LRESULT WndProc( HWND hwnd, UINT msg,
197                              WPARAM wParam, LPARAM lParam, PBOOL pbProcessed );
198     void UpdateFileInfo( HWND );
199     BOOL CreateTreeView( HWND );
200 };
201
202 /* Messages */
203 class Messages : public CBaseWindow
204 {
205 public:
206     /* Constructor */
207     Messages( intf_thread_t *_p_intf, HINSTANCE _hInst );
208     virtual ~Messages(){};
209
210 protected:
211
212     intf_thread_t *p_intf;
213
214     virtual LRESULT WndProc( HWND hwnd, UINT msg,
215                              WPARAM wParam, LPARAM lParam,
216                              PBOOL pbProcessed );
217
218     HWND hListView;
219     void UpdateLog(void);
220
221     vlc_bool_t b_verbose;
222 };
223
224 /* ItemInfo Dialog */
225 class ItemInfoDialog : public CBaseWindow
226 {
227 public:
228     /* Constructor */
229     ItemInfoDialog( intf_thread_t *, HINSTANCE, playlist_item_t * );
230     virtual ~ItemInfoDialog(){};
231
232 protected:
233
234     intf_thread_t *p_intf;
235     HWND hwndCB;        // Handle to the command bar (but no menu)
236
237     playlist_item_t *p_item;
238
239     /* Event handlers (these functions should _not_ be virtual) */
240     void OnOk();
241     void UpdateInfo();
242
243     virtual LRESULT WndProc( HWND hwnd, UINT msg,
244                              WPARAM wParam, LPARAM lParam,
245                              PBOOL pbProcessed );
246
247     /* Controls for the iteminfo dialog box */
248     HWND uri_label;
249     HWND uri_text;
250
251     HWND name_label;
252     HWND name_text;
253
254     HWND checkbox_label;
255     HWND enabled_checkbox;
256
257     HWND info_tree;
258 };
259
260 /* Open Dialog */
261 class SubsFileDialog;
262 class OpenDialog : public CBaseWindow
263 {
264 public:
265     /* Constructor */
266     OpenDialog( intf_thread_t *_p_intf, HINSTANCE _hInst,
267                 int _i_access_method, int _i_arg, int _i_method );
268     virtual ~OpenDialog(){};
269
270     void UpdateMRL();
271     void UpdateMRL( int i_access_method );
272
273 protected:
274
275     intf_thread_t *p_intf;
276
277     virtual LRESULT WndProc( HWND hwnd, UINT msg,
278                              WPARAM wParam, LPARAM lParam,
279                              PBOOL pbProcessed );
280
281     HWND mrl_box;
282     HWND mrl_label;
283     HWND mrl_combo;
284     HWND label;
285
286     HWND notebook;
287
288     HWND file_combo;
289     HWND browse_button;
290     HWND subsfile_checkbox;
291     HWND subsfile_label;
292     HWND subsfile_button;
293     SubsFileDialog *subsfile_dialog;
294
295     HWND net_radios[4];
296     HWND net_label[4];
297
298     HWND net_port_label[4];
299     HWND net_ports[4];
300     HWND hUpdown[4];
301     int i_net_ports[4];
302
303     HWND net_addrs_label[4];
304     HWND net_addrs[4];
305         
306     int i_current_access_method;
307     int i_method; /* Normal or for the stream dialog ? */
308     int i_open_arg;
309     int i_net_type;
310         
311     void FilePanel( HWND hwnd );
312     void NetPanel( HWND hwnd );
313
314     void OnSubsFileEnable();
315     void OnSubsFileSettings( HWND hwnd );
316
317     void OnPageChange();
318
319     void OnFilePanelChange();
320     void OnFileBrowse();
321     void OnNetPanelChange( int event );
322     void OnNetTypeChange( int event );
323     void DisableNETCtrl();
324
325     void OnOk();
326
327     vector<string> mrl;
328     vector<string> subsfile_mrl;
329 };
330
331 /* Subtitles File Dialog */
332 class SubsFileDialog: public CBaseWindow
333 {
334 public:
335     /* Constructor */
336     SubsFileDialog( intf_thread_t *_p_intf, HINSTANCE _hInst );
337     virtual ~SubsFileDialog(){};
338
339     vector<string> subsfile_mrl;
340
341 protected:
342     friend class OpenDialog;
343
344     intf_thread_t *p_intf;
345
346     HWND file_box;
347     HWND file_combo;
348     HWND browse_button;
349
350     HWND enc_box;
351     HWND enc_label;
352     HWND encoding_combo;
353
354     HWND misc_box;
355     HWND delay_label;
356     HWND delay_edit;
357     HWND delay_spinctrl;
358     HWND fps_label;
359     HWND fps_edit;
360     HWND fps_spinctrl;
361
362     virtual LRESULT WndProc( HWND hwnd, UINT msg,
363                              WPARAM wParam, LPARAM lParam,
364                              PBOOL pbProcessed );
365
366     /* Event handlers (these functions should _not_ be virtual) */
367     void OnFileBrowse();
368 };
369
370 /* Playlist */
371 class Playlist : public CBaseWindow
372 {
373 public:
374     /* Constructor */
375     Playlist( intf_thread_t *_p_intf, HINSTANCE _hInst );
376     virtual ~Playlist(){};
377
378 protected:
379
380     bool b_need_update;
381     vlc_mutex_t lock;
382
383     int i_title_sorted;
384     int i_author_sorted;
385
386     intf_thread_t *p_intf;
387     HWND hwndCB;        // Handle to the command bar (contains menu)
388     HWND hwndTB;        // Handle to the toolbar.
389     HWND hListView;
390
391     void UpdatePlaylist();
392     void Rebuild();
393     void UpdateItem( int );
394     LRESULT ProcessCustomDraw( LPARAM lParam );
395     void HandlePopupMenu( HWND hwnd, POINT point);
396
397     void DeleteItem( int item );
398
399     void OnOpen();
400     void OnSave();
401     void OnAddFile();
402     void OnAddMRL();
403
404     void OnDeleteSelection();
405     void OnInvertSelection();
406     void OnEnableSelection();
407     void OnDisableSelection();
408     void OnSelectAll();
409     void OnActivateItem( int i_item );
410     void ShowInfos( HWND hwnd, int i_item );
411
412     void OnUp();
413     void OnDown();
414
415     void OnRandom();
416     void OnLoop();
417     void OnRepeat();
418
419     void OnSort( UINT event );
420     void OnColSelect( int iSubItem );
421
422     void OnPopupPlay();
423     void OnPopupDel();
424     void OnPopupEna();
425     void OnPopupInfo( HWND hwnd );
426
427     virtual LRESULT WndProc( HWND hwnd, UINT msg,
428                              WPARAM wParam, LPARAM lParam,
429                              PBOOL pbProcessed );
430 };
431
432 /* Timer */
433 class Timer
434 {
435 public:
436     /* Constructor */
437     Timer( intf_thread_t *p_intf, HWND hwnd, Interface *_p_main_interface);
438     virtual ~Timer();
439     void Notify( void ); 
440
441 private:
442     intf_thread_t *p_intf;
443     Interface *p_main_interface;
444     //Interface *p_main_interface;
445     int i_old_playing_status;
446     int i_old_rate;
447 };
448
449 /* Menus */
450 void RefreshSettingsMenu( intf_thread_t *_p_intf, HMENU hMenu );
451 void RefreshAudioMenu( intf_thread_t *_p_intf, HMENU hMenu );
452 void RefreshVideoMenu( intf_thread_t *_p_intf, HMENU hMenu );
453 void RefreshNavigMenu( intf_thread_t *_p_intf, HMENU hMenu );
454 void RefreshMenu( intf_thread_t *, vector<MenuItemExt*> *, HMENU, int,
455                   char **, int *, int );
456 int wce_GetMenuItemCount( HMENU );
457 void CreateMenuItem( intf_thread_t *, vector<MenuItemExt*> *, HMENU, char *,
458                      vlc_object_t *, int * );
459 HMENU CreateChoicesMenu( intf_thread_t *, vector<MenuItemExt*> *, char *, 
460                          vlc_object_t *, int * );
461 void OnMenuEvent( intf_thread_t *, int );
462
463 /*****************************************************************************
464  * A small helper class which encapsulate wxMenuitem with some other useful
465  * things.
466  *****************************************************************************/
467 class MenuItemExt
468 {
469 public:
470     /* Constructor */
471     MenuItemExt( intf_thread_t *_p_intf, int _id, char *_psz_var,
472                  int _i_object_id, vlc_value_t _val, int _i_val_type );
473
474     virtual ~MenuItemExt();
475
476     int id;
477     intf_thread_t *p_intf;
478     char *psz_var;
479     int  i_val_type;
480     int  i_object_id;
481     vlc_value_t val;
482
483 private:
484
485 };
486
487
488 /* Preferences Dialog */
489 /* Preferences Dialog */
490 class PrefsTreeCtrl;
491 class PrefsDialog: public CBaseWindow
492 {
493 public:
494     /* Constructor */
495     PrefsDialog( intf_thread_t *_p_intf, HINSTANCE _hInst );
496     virtual ~PrefsDialog(){};
497
498 protected:
499
500     intf_thread_t *p_intf;
501
502     /* Event handlers (these functions should _not_ be virtual) */
503     void OnOk( void );
504     /*void OnCancel( UINT event );
505     void OnSave( UINT event );
506     void OnResetAll( UINT event );
507     void OnAdvanced( UINT event );*/
508
509     HWND save_button;
510     HWND reset_button;
511     HWND advanced_checkbox;
512     HWND advanced_label;
513
514     PrefsTreeCtrl *prefs_tree;
515
516     virtual LRESULT WndProc( HWND hwnd, UINT msg,
517                              WPARAM wParam, LPARAM lParam,
518                              PBOOL pbProcessed );
519 };
520
521 /*****************************************************************************
522  * A small helper function for utf8 <-> unicode conversions
523  *****************************************************************************/
524 #ifdef UNICODE
525     static wchar_t pwsz_mbtow[2048];
526     static char psz_wtomb[2048];
527     static inline wchar_t *_FROMMB( const char *psz_in )
528     {
529         mbstowcs( pwsz_mbtow, psz_in, 2048 );
530         pwsz_mbtow[2048-1] = 0;
531         return pwsz_mbtow;
532     }
533     static inline char *_TOMB( const wchar_t *pwsz_in )
534     {
535         wcstombs( psz_wtomb, pwsz_in, 2048 );
536         psz_wtomb[2048-1] = 0;
537         return psz_wtomb;
538     }
539 #else
540 #   define _FROMMB(a) a
541 #   define _TOMB(a) a
542 #endif
543
544 #if defined( ENABLE_NLS ) && defined( ENABLE_UTF8 )
545 #   define ISUTF8 1
546 #else // ENABLE_NLS && ENABLE_UTF8
547 #   define ISUTF8 0
548 #endif
549
550 /*****************************************************************************
551  * Misc definitions (mainly from aygshell.h)
552  *****************************************************************************/
553 #define _WIN32_IE 0x0500
554
555 #define SHFS_HIDESIPBUTTON          0x0008
556 #define SHIDIM_FLAGS                0x0001
557 #define SHIDIF_DONEBUTTON           0x0001
558 #define SHIDIF_SIPDOWN              0x0008
559 #define SHIDIF_FULLSCREENNOMENUBAR  0x0010
560 #define SHCMBF_HMENU                0x0010
561 #define SHCMBF_EMPTYBAR             0x0001
562 #define SHFS_SHOWSIPBUTTON          0x0004
563 #define GN_CONTEXTMENU              1000
564 #define SHCMBM_GETSUBMENU           (WM_USER + 401)
565 #define SHCMBM_GETMENU              (WM_USER + 402)
566 #ifndef TBSTYLE_NO_DROPDOWN_ARROW
567 #define TBSTYLE_NO_DROPDOWN_ARROW   0x0080
568 #endif
569 #define lstrlenW wcslen
570 #define SHGetMenu(hwnd) \
571     (HMENU)SendMessage((hwnd), SHCMBM_GETMENU, (WPARAM)0, (LPARAM)0)
572 #define TrackPopupMenu(hm,u,x,y,r,hw,p) \
573     TrackPopupMenuEx((hm),(u),(x),(y),(hw),0)
574
575 extern "C" {
576     typedef struct tagSHMENUBARINFO
577     {
578         DWORD cbSize;
579         HWND hwndParent;
580         DWORD dwFlags;
581         UINT nToolBarId;
582         HINSTANCE hInstRes;
583         int nBmpId;
584         int cBmpImages;
585         HWND hwndMB;
586         COLORREF clrBk;
587     } SHMENUBARINFO, *PSHMENUBARINFO;
588
589     BOOL SHCreateMenuBar( SHMENUBARINFO *pmbi );
590     BOOL SHFullScreen(HWND hwndRequester, DWORD dwState);
591
592     typedef struct tagSHINITDLGINFO
593     {
594         DWORD dwMask;
595         HWND  hDlg;
596         DWORD dwFlags;
597     } SHINITDLGINFO, *PSHINITDLGINFO;
598
599     BOOL SHInitDialog(PSHINITDLGINFO pshidi);
600
601     typedef struct tagNMRGINFO
602     {
603         NMHDR hdr;
604         POINT ptAction;
605         DWORD dwItemSpec;
606     } NMRGINFO, *PNMRGINFO;
607
608     BOOL WINAPI CommandBar_InsertMenubarEx(HWND, HINSTANCE, LPTSTR, WORD);
609 }
610
611 #if defined( WIN32 ) && !defined( UNDER_CE )
612 #   define SHFullScreen(a,b)
613 #   define SHInitDialog(a)
614 #   define SHCreateMenuBar(a) 1
615 #endif
616
617 #endif //WINCE_RESOURCE
618
619 #define IDD_ABOUT                       101
620 #define IDI_ICON1                       102
621 #define IDB_BITMAP1                     103
622 #define IDB_BITMAP2                     111
623 #define IDR_MENUBAR1                    113
624 #define IDR_ACCELERATOR1                116
625 #define IDD_FILEINFO                    118
626 #define IDD_DUMMY                       118
627 #define IDD_MESSAGES                    119
628 #define IDR_MENUBAR                     120
629 #define IDR_MENUBAR2                    121
630 #define IDD_PLAYLIST                    122
631 #define IDB_BITMAP3                     123
632 #define IDD_ITEMINFO                    124
633 #define IDR_DUMMYMENU                   126
634 #define IDCLEAR                         1001
635 #define IDSAVEAS                        1002
636 #define IDC_TEXTCTRL                    1004
637 #define IDC_CUSTOM1                     1012
638 #define IDS_MAIN_MENUITEM1              40001
639 #define IDS_TITLE                       40002
640 #define IDS_CLASSNAME                   40003
641 #define IDS_CAP_QUICKFILEOPEN           40006
642 #define IDS_CAP_VIEW                    40009
643 #define IDS_CAP_SETTINGS                40012
644 #define IDS_CAP_AUDIO                   40015
645 #define IDS_CAP_VIDEO                   40018
646 #define IDS_CAP_HELP                    40021
647 #define IDS_CAP_Navigation              40024
648 #define IDS_CAP_FILE                    40025
649 #define ID_COLOR_OPTIONS                40026
650 #define IDS_DYNAMENU                    40027
651 #define ID_FILE                         40028
652 #define IDS_BLACK                       40028
653 #define IDS_LTGRAY                      40029
654 #define ID_VIEW                         40030
655 #define IDS_DKGRAY                      40030
656 #define IDS_WHITE                       40031
657 #define ID_SETTINGS                     40032
658 #define ID_AUDIO                        40034
659 #define ID_EMPTY                        40034
660 #define ID_VIDEO                        40036
661 #define ID_NAVIGATION                   40038
662 #define IDM_FILE                        40042
663 #define IDM_VIEW                        40044
664 #define IDM_SETTINGS                    40046
665 #define IDM_AUDIO                       40048
666 #define IDM_VIDEO                       40050
667 #define IDM_NAVIGATION                  40053
668 #define ID_FILE_QUICK_OPEN              40056
669 #define ID_FILE_OPENFILE                40057
670 #define ID_FILE_QUICKOPEN               40058
671 #define ID_FILE_OPENNETWORKSTREAM       40059
672 #define ID_FILE_OPENNET                 40060
673 #define ID_FILE_EXIT                    40061
674 #define ID_VIEW_PLAYLIST                40063
675 #define ID_VIEW_MESSAGES                40064
676 #define ID_VIEW_MEDIAINFO               40065
677 #define ID_VIEW_STREAMINFO              40066
678 #define IDS_CAP_NAV                     40067
679 #define ID_FILE_ABOUT                   40069
680 #define ID_SETTINGS_PREF                40071
681 #define ID_SETTINGS_EXTEND              40072
682 #define IDS_CAP_XXX                     40084
683 #define IDM_MANAGE                      40087
684 #define IDM_SORT                        40088
685 #define IDM_SEL                         40089
686 #define ID_SORT_AUTHOR                  40091
687 #define ID_SORT_RAUTHOR                 40092
688 #define ID_SORT_SHUFFLE                 40095
689 #define ID_SEL_INVERT                   40096
690 #define ID_SEL_DELETE                   40097
691 #define ID_SEL_SELECTALL                40098
692 #define ID_SEL_ENABLE                   40100
693 #define ID_SEL_DISABLE                  40101
694 #define ID_SORT_TITLE                   40102
695 #define ID_SORT_RTITLE                  40103
696 #define ID_MANAGE_SIMPLEADD             40104
697 #define ID_MANAGE_OPENPL                40105
698 #define ID_MANAGE_ADDMRL                40106
699 #define ID_MANAGE_SAVEPL                40107
700 #define ID_MENUITEM40108                40108
701 #define IDS_CAP_MENUITEM40109           40110
702 #define IDS_STOP                        57601
703 #define StopStream_Event                57601
704 #define IDS_PLAY                        57602
705 #define PlayStream_Event                57602
706 #define PrevStream_Event                57603
707 #define NextStream_Event                57604
708 #define SlowStream_Event                57605
709 #define FastStream_Event                57606
710
711 // Next default values for new objects
712 // 
713 #ifdef APSTUDIO_INVOKED
714 #ifndef APSTUDIO_READONLY_SYMBOLS
715 #define _APS_NEXT_RESOURCE_VALUE        128
716 #define _APS_NEXT_COMMAND_VALUE         40111
717 #define _APS_NEXT_CONTROL_VALUE         1013
718 #define _APS_NEXT_SYMED_VALUE           101
719 #endif
720 #endif