|
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <vlc_common.h>
#include <vlc_aout.h>
#include <vlc_interface.h>
#include <vlc_playlist.h>
#include "wince.h"
#include <commctrl.h>
#include <commdlg.h>
#include <shlobj.h>
/* Dialogs Provider */
class DialogsProvider: public CBaseWindow
{
public:
/* Constructor */
DialogsProvider( intf_thread_t *, CBaseWindow *, HINSTANCE = 0 );
virtual ~DialogsProvider();
protected:
virtual LRESULT WndProc( HWND, UINT, WPARAM, LPARAM );
private:
void OnExit( void );
void OnIdle( void );
void OnPlaylist( void );
void OnMessages( void );
void OnFileInfo( void );
void OnPreferences( void );
void OnPopupMenu( void );
void OnOpen( int, int );
void OnOpenFileSimple( int );
void OnOpenDirectory( int );
void OnOpenFileGeneric( intf_dialog_args_t * );
/* GetOpenFileName replacement */
BOOL (WINAPI *GetOpenFile)(void *);
HMODULE h_gsgetfile_dll;
public:
/* Secondary windows */
OpenDialog *p_open_dialog;
Playlist *p_playlist_dialog;
Messages *p_messages_dialog;
PrefsDialog *p_prefs_dialog;
FileInfo *p_fileinfo_dialog;
};
CBaseWindow *CreateDialogsProvider( intf_thread_t *p_intf,
CBaseWindow *p_parent, HINSTANCE h_inst )
{
return new DialogsProvider( p_intf, p_parent, h_inst );
}
.......................
DialogsProvider: ialogsProvider( intf_thread_t *p_intf,
CBaseWindow *p_parent, HINSTANCE h_inst )
: CBaseWindow( p_intf, p_parent, h_inst )
{
/* Initializations */
p_open_dialog = NULL;
p_playlist_dialog = NULL;
p_messages_dialog = NULL;
p_fileinfo_dialog = NULL;
p_prefs_dialog = NULL;
/* Create dummy window */
hWnd = CreateWindow( _T("VLC WinCE"), _T("DialogsProvider"), 0,
0, 0, CW_USEDEFAULT, CW_USEDEFAULT,
p_parent->GetHandle(), NULL, h_inst, (void *)this );
GetOpenFile = 0;
h_gsgetfile_dll = LoadLibrary( _T("gsgetfile") );
if( h_gsgetfile_dll )
{
GetOpenFile = (BOOL (WINAPI *)(void *))
GetProcAddress( h_gsgetfile_dll, _T("gsGetOpenFileName") );
}
if( !GetOpenFile )
GetOpenFile = (BOOL (WINAPI *)(void *))::GetOpenFileName;
}
DialogsProvider::~DialogsProvider()
{
/* Clean up */
delete p_open_dialog;
delete p_playlist_dialog;
delete p_messages_dialog;
delete p_fileinfo_dialog;
delete p_prefs_dialog;
if( h_gsgetfile_dll ) FreeLibrary( h_gsgetfile_dll );
}
请帮助转换下红色的部分,谢谢,附上 完整的C代码 |
|