photon_window CreateSDLWindow(const photon_settings &settings){
    PrintToLog("INFO: Initializing SDL.");
    photon_window window;

    SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2);
    SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);

    if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK | SDL_INIT_GAMECONTROLLER) == -1) {
        PrintToLog("ERROR: Unable to init SDL! \"%s\"", SDL_GetError());
        // TODO - error handling.
        abort();
    }

    SDL_GL_SetAttribute(SDL_GL_RED_SIZE,            8);
    SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE,          8);
    SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE,           8);
    SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE,          8);

    SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE,          16);
    SDL_GL_SetAttribute(SDL_GL_BUFFER_SIZE,         32);

    if(settings.multisamples > 0){
        SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS,  1);
        SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES,  settings.multisamples);
    }

    SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, settings.doublebuffer);

    window.window_SDL = SDL_CreateWindow("Photon", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, PHOTON_WINDOW_FLAGS);

    if (!window.window_SDL){
        PrintToLog("ERROR: Unable to create window!");
        // TODO - error handling.
        abort();
    }

    window.context_SDL = SDL_GL_CreateContext(window.window_SDL);

    SDL_GL_SetSwapInterval(settings.vsync);

    SDL_ShowCursor(SDL_ENABLE);

    if(settings.fullscreen){
        ToggleFullscreen(window);
    }

    SetWindowIcon(window, "/textures/gui/window_icon.png");

    return window;
}
Beispiel #2
0
void VPlayerApp::AfterEngineInit()
{
  VAppImpl::AfterEngineInit();

  VPlayerAppModule* pModule = new VPlayerAppModule(&m_Config);

  pModule->RegisterLoader(new SceneLoader());
  pModule->RegisterLoader(new MeshLoader());
  pModule->RegisterLoader(new PrefabLoader());
  pModule->RegisterLoader(new ZoneLoader());
  pModule->RegisterLoader(new LitLoader());

  RegisterAppModule(pModule);

  RegisterAppModule(new VCameraHandling());

  SetWindowIcon();
}
Beispiel #3
0
inline void WINAPI tapetums::UWnd::SetWindowIcon
(
    HMODULE hInst, LPCTSTR lpszIconName
)
noexcept
{
    const auto hIcon = (HICON)::LoadImage
    (
        hInst, lpszIconName,
        IMAGE_ICON, 0, 0, LR_DEFAULTSIZE | LR_SHARED
    );

    const auto hIconSm = (HICON)::LoadImage
    (
        hInst, lpszIconName,
        IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR | LR_SHARED
    );

    return SetWindowIcon(hIcon, hIconSm);
}
Beispiel #4
0
    ExplorerAboutDlg(HWND hwnd)
     :    super(hwnd)
    {
        SetWindowIcon(hwnd, IDI_REACTOS);

        new FlatButton(hwnd, IDOK);

        _hfont = CreateFont(20, 0, 0, 0, FW_BOLD, TRUE, 0, 0, 0, 0, 0, 0, 0, TEXT("Sans Serif"));
        new ColorStatic(hwnd, IDC_ROS_EXPLORER, RGB(32,32,128), 0, _hfont);

        new HyperlinkCtrl(hwnd, IDC_WWW);

        FmtString ver_txt(ResString(IDS_EXPLORER_VERSION_STR), (LPCTSTR)ResString(IDS_VERSION_STR));
        SetWindowText(GetDlgItem(hwnd, IDC_VERSION_TXT), ver_txt);

        HWND hwnd_winver = GetDlgItem(hwnd, IDC_WIN_VERSION);
        SetWindowText(hwnd_winver, get_windows_version_str());
        SetWindowFont(hwnd_winver, GetStockFont(DEFAULT_GUI_FONT), FALSE);

        CenterWindow(hwnd);
    }
Beispiel #5
0
//
//	Main Window message handler
//
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    NMHDR *hdr;
    POINT pt;
    RECT  rect;
    HMENU hMenu;
    HWND hwndHV = GetActiveHexView(hwnd);//g_hwndHexView;
    int i;
    TCITEM tci;

    MAINWND *mainWnd = (MAINWND *)GetWindowLongPtr(hwnd, 0);

    switch(msg)
    {
    case WM_NCCREATE:

        if((mainWnd = malloc(sizeof(MAINWND))) == 0)
            return FALSE;

        SetWindowLongPtr(hwnd, 0, (LONG_PTR)mainWnd);
        ZeroMemory(mainWnd, sizeof(MAINWND));
        return TRUE;

    case WM_NCDESTROY:
        free(mainWnd);
        return 0;

    case WM_CREATE:

        g_hwndMain = hwnd;

        SetWindowIcon(hwnd, IDI_APP);

        // create a child-window EDIT control
        //g_hwndHexView	= CreateHexViewCtrl(hwnd);
        g_hwndTabView	= CreateWindow(WC_TABVIEW, TEXT(""), WS_CHILD|WS_VISIBLE,0,0,0,0,hwnd, 0, g_hInstance, 0);
        g_hwndStatusBar = CreateStatusBar(hwnd);

        SendMessage(g_hwndTabView, TCM_SETITEMSIZE, 0, MAKELPARAM(150, 0));

        SetStatusBarParts(g_hwndStatusBar);

        hwndHV = g_hwndHexView;

        mainWnd->hwndMain		= hwnd;
        mainWnd->hwndStatusBar	= g_hwndStatusBar;
        mainWnd->hwndTabView	= g_hwndTabView;

        CreateToolTip(g_hwndHexView);

//		g_hwndDock[0] = CreateDockWnd(&dock, hwnd, TEXT("Toolbar"));



        //g_hwndToolbar   = InitToolbar(hwnd);
        //g_hwndSearchBar = CreateSearchBar(hwnd);
        //g_hwndTypeView  = CreateTypeView(hwnd);


        SetFocus(hwndHV);


        // tell windows that we can handle drag+drop'd files
        DragAcceptFiles(hwnd, TRUE);

        UpdateRecentMenu(GetSubMenu(GetMenu(hwnd), 0));

        SetTimer(hwnd, 0xdeadbeef, 1000, 0);

        return TRUE;

    case WM_TIMER:
        if(wParam == 0xdeadbeef)
        {
            KillTimer(hwnd, wParam);
            //FirstTimeOptions(hwnd);
        }
        return 0;

    case WM_DROPFILES:

        // get the screen coordinates of the drop-location
        if(DragQueryPoint((HDROP)wParam, &pt))
            ClientToScreen(hwnd, &pt);

        GetWindowRect(hwndHV, &rect);

        // drop anywhere *except* the hexview, as that does D&D itself
        if(!PtInRect(&rect, pt))
        {
            HandleDropFiles(hwnd, (HDROP)wParam);
        }

        //CreateToolTip(mainWnd->hwndTabView);
        return 0;

    case WM_ENABLE:
        EnableWindow(g_hwndSearch, (BOOL)wParam);
        EnableWindow(g_hwndGoto, (BOOL)wParam);
        return 0;

    case WM_CONTEXTMENU:
        if((HWND)wParam == DockWnd_GetWindow(hwnd, DWID_TYPEVIEW))
        {
            HMENU hMenu = GetSubMenu(LoadMenu(g_hInstance, MAKEINTRESOURCE(IDR_TYPECONTEXT)), 0);
            UINT  u;

            MenuCheckMark(hMenu, IDM_TYPEVIEW_HEX, g_fDisplayHex);
            MenuCheckMark(hMenu, IDM_TYPEVIEW_BIGENDIAN, g_fDisplayBigEndian);
            u = TrackPopupMenu(hMenu, TPM_RETURNCMD, (short)LOWORD(lParam), (short)HIWORD(lParam), 0, hwnd, 0);

            SendMessage(DockWnd_GetContents(hwnd, DWID_TYPEVIEW), WM_COMMAND, u, 0);
        }

        break;

    case WM_COMMAND:
        return HexEdit_OnCommand(hwnd, LOWORD(wParam), HIWORD(wParam), (HWND)lParam);

    case WM_NOTIFY:
        hdr = (NMHDR *)lParam;
        if(hdr->hwndFrom == hwndHV)
            return HexViewNotifyHandler(mainWnd, hwnd, hdr);
        else
            return HexEdit_OnNotify(mainWnd, hwnd, (UINT)wParam, (NMHDR *)lParam);

    case WM_CLOSE:

        tci.mask = TCIF_PARAM;

        for(i = 0; (hwndHV = EnumHexView(hwnd, i)) != NULL; )
        {
            UINT uAnswer = HexFileCloseNotify(hwnd, hwndHV);

            if(uAnswer == IDCANCEL)
            {
                return 0;
            }
            else if(uAnswer == IDNO)
            {
                SaveHighlights(hwndHV);
                TabCtrl_DeleteItem(mainWnd->hwndTabView, i);
            }
            else
            {
                i++;
            }
        }

        // save settings *before* we destroy anything!
        DockWnd_SaveSettings(hwnd);

        // shut program down
        DestroyWindow(hwnd);
        return 0;

    case WM_DESTROY:
        DestroyWindow(hwndHV);

        //
        PostQuitMessage(0);
        return 0;

    case WM_SETFOCUS:
        SetFocus(hwndHV);
        return 0;

    case WM_SIZE:

        MainWndSize(mainWnd, LOWORD(lParam), HIWORD(lParam));
        UpdateStatusbar(mainWnd->hwndStatusBar);

        return 0;

    case WM_INITMENUPOPUP:
        hMenu = (HMENU)wParam;//GetMenu(hwnd);

        MenuCheckMark(hMenu, IDM_VIEW_TOOLBAR, DockWnd_IsOpen(hwnd, DWID_TOOLBAR));
        MenuCheckMark(hMenu, IDM_TOOLS_TYPEVIEW, DockWnd_IsOpen(hwnd, DWID_TYPEVIEW));
        MenuCheckMark(hMenu, IDM_TOOLS_SEARCHBAR, DockWnd_IsOpen(hwnd, DWID_SEARCHBAR));

        CheckMenuRadioItem(hMenu, IDM_VIEW_HEX, IDM_VIEW_BIN,
                           IDM_VIEW_HEX + (HexView_GetStyle(hwndHV) & HVS_FORMAT_MASK),
                           MF_BYCOMMAND);

        {   int look[32] = { 0, 0, 1, 0, 2 };
            CheckMenuRadioItem(hMenu, IDM_GROUP_BYTE, IDM_GROUP_DWORD,
                               IDM_GROUP_BYTE + look[HexView_GetGrouping(hwndHV)],
                               MF_BYCOMMAND);
        }

        {
            size_w selsize;
            UINT   edmode  = HexView_GetEditMode(hwndHV);
            BOOL   cftext  = IsClipboardFormatAvailable(CF_TEXT);
            BOOL   canundo = HexView_CanUndo(hwndHV);
            BOOL   canredo = HexView_CanRedo(hwndHV);

            HexView_GetSelSize(hwndHV, &selsize);

            //hMenu = GetSubMenu(GetMenu(hwnd), 1);

            EnableMenuCmdItem(hMenu, IDM_EDIT_UNDO,  canundo);
            EnableMenuCmdItem(hMenu, IDM_EDIT_REDO,  canredo);
            EnableMenuCmdItem(hMenu, IDM_EDIT_CUT,  selsize > 0 && edmode == HVMODE_INSERT);
            EnableMenuCmdItem(hMenu, IDM_EDIT_COPY, selsize > 0);
            EnableMenuCmdItem(hMenu, IDM_EDIT_COPYAS, selsize > 0);
            EnableMenuCmdItem(hMenu, IDM_EDIT_PASTE, cftext && edmode != HVMODE_READONLY  );
            EnableMenuCmdItem(hMenu, IDM_EDIT_PASTESPECIAL, edmode != HVMODE_READONLY  );
            EnableMenuCmdItem(hMenu, IDM_EDIT_DELETE, selsize > 0 && edmode != HVMODE_READONLY );

            EnableMenuCmdItem(hMenu, IDM_EDIT_REVERSE, selsize > 0 && edmode != HVMODE_READONLY );
            EnableMenuCmdItem(hMenu, IDM_TOOLS_TRANSFORM, selsize > 0 && edmode != HVMODE_READONLY );

            EnableMenuCmdItem(hMenu, IDM_FILE_REVERT, canundo || canredo);
        }

        return 0;
    }

    return DefWindowProc(hwnd, msg, wParam, lParam);
}
Beispiel #6
0
//--------------------------------------------------------------------
// Function:    Cls_OnInitDialog
// 
// Description: 
//
// Input:       hwnd       - 
//              hwndFocus  - 
//              lParam     - 
//              
// Modifies:    
//
// Returns:     
//
//--------------------------------------------------------------------
BOOL Cls_OnTrayInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
    TCHAR            szBuffer[512];
    HWND            hwndChild;
    int                i;

    LPPROPSHEETPAGE    psp = (LPPROPSHEETPAGE)lParam;

#ifndef WIN32
    hwndChild = GetFirstChild(hwnd);
    while (hwndChild)
    {
        SetWindowFont(hwndChild, hFontDialog, FALSE);
        hwndChild = GetNextSibling(hwndChild);
    }
#endif

    //  Description
    LoadString(hInstance, IDS_TRAYS_DESC1, szBuffer, SIZEOF_IN_CHAR(szBuffer));
    LoadString(hInstance, IDS_TRAYS_DESC2, szBuffer + _tcslen(szBuffer), SIZEOF_IN_CHAR(szBuffer) - _tcslen(szBuffer));
    SetDlgItemText(hwnd, IDC_TIP_TEXT, szBuffer);
    
    loadMediaSize(hwnd, IDC_MEDIA_SIZE1, media_tray[0].uMediaSizeID);
    
    if (hwndChild = GetDlgItem(hwnd, IDC_MEDIA_SIZE2))
    {
        for (i = 0; i < MEDIA_SIZE_MAX_NUMBER; i++) {
            if (media_tray[1].uMediaSizeID IS media_size[i].uMediaSizeID) {
                SetWindowText(hwndChild, media_size[i].szMediaSize);
                SetWindowIcon(hwndChild, media_size[1].uMediaSizeIconID);
                break;
            }
        }
    }
    
    if (hwndChild = GetDlgItem(hwnd, IDC_MEDIA_SIZE3))
    {
        for (i = 0; i < MEDIA_SIZE_MAX_NUMBER; i++) {
            if (media_tray[2].uMediaSizeID IS media_size[i].uMediaSizeID) {
                SetWindowText(hwndChild, media_size[i].szMediaSize);
                SetWindowIcon(hwndChild, media_size[1].uMediaSizeIconID);
                break;
            }
        }
    }
    
    if (hwndChild = GetDlgItem(hwnd, IDC_MEDIA_SIZE4)) {
        if (media_tray[3].bInstalled IS TRUE) {
            for (i = 0; i < MEDIA_SIZE_MAX_NUMBER; i++) {
                if (media_tray[3].uMediaSizeID IS media_size[i].uMediaSizeID) {
                    SetWindowText(hwndChild, media_size[i].szMediaSize);
                    SetWindowIcon(hwndChild, media_size[1].uMediaSizeIconID);
                    break;
                }
            }
        }
        else {
            ShowWindow(hwndChild, SW_HIDE);
            if (hwndChild = GetDlgItem(hwnd, IDC_TRAY4_NAME)) 
                ShowWindow(hwndChild, SW_HIDE);
        }
    }
    
    if (media_tray[4].bInstalled IS TRUE) {
        loadMediaSize(hwnd, IDC_MEDIA_SIZE5, media_tray[4].uMediaSizeID);
    }
    else 
    {
        if (hwndChild = GetDlgItem(hwnd, IDC_MEDIA_SIZE5)) 
            ShowWindow(hwndChild, SW_HIDE);
        if (hwndChild = GetDlgItem(hwnd, IDC_ENVL_NAME)) 
            ShowWindow(hwndChild, SW_HIDE);
    }
    
    OnActivateDialog (hwnd);

    return TRUE;
}
Beispiel #7
0
BOOL Cls_OnTraysInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
	TCHAR			szBuffer[512];
	HWND			hwndChild;
	int				i;

#ifdef WIN32XXX
	LPPROPSHEETPAGE	psp = (LPPROPSHEETPAGE)lParam;
#else
	LPTABINFOENTRY	psp = (LPTABINFOENTRY)lParam;
#endif

#ifndef WIN32
	hwndChild = GetFirstChild(hwnd);
	while (hwndChild)
	{
		SetWindowFont(hwndChild, hFontDialog, FALSE);
		hwndChild = GetNextSibling(hwndChild);
	}
#endif
  	
	//  Description
	LoadString(hInstance, IDS_TRAYS_DESC1, szBuffer, SIZEOF_IN_CHAR(szBuffer));
	LoadString(hInstance, IDS_TRAYS_DESC2, szBuffer + _tcslen(szBuffer), SIZEOF_IN_CHAR(szBuffer) - _tcslen(szBuffer));
	SetDlgItemText(hwnd, IDC_TIP_TEXT, szBuffer);
	
   /*****************************************************/
   /* Load  media size to the MP tray - this cannot     */
   /* sizes so load the current                         */
   /*****************************************************/
	loadMediaSize(hwnd, IDC_MEDIA_SIZE1, elk_media_tray[0].uMediaSizeID);
	
   /*****************************************************/
   /* Now, for the Tray 2 - loop through and match the  */
   /* size and then set it.                             */
   /*****************************************************/
	if (hwndChild = GetDlgItem(hwnd, IDC_MEDIA_SIZE2))
	{
		for (i = 0; i < MEDIA_SIZE_MAX_NUMBER; i++) {
			if (elk_media_tray[1].uMediaSizeID IS media_size[i].uMediaSizeID) {
				SetWindowText(hwndChild, media_size[i].szMediaSize);
				SetWindowIcon(hwndChild, media_size[1].uMediaSizeIconID);
				break;
			}
		}
	}
	
   /*****************************************************/
   /*  Set up the Tray 3 - this is the 500 sheet option */
   /* If it is not installed,hide the dialog.           */
   /*****************************************************/
	if (hwndChild = GetDlgItem(hwnd, IDC_MEDIA_SIZE3)) {
		if (elk_media_tray[2].bInstalled IS TRUE) {
			for (i = 0; i < MEDIA_SIZE_MAX_NUMBER; i++) {
				if (elk_media_tray[2].uMediaSizeID IS media_size[i].uMediaSizeID) {
					SetWindowText(hwndChild, media_size[i].szMediaSize);
					SetWindowIcon(hwndChild, media_size[1].uMediaSizeIconID);
					break;
				}
			}
		}
		else {
			ShowWindow(hwndChild, SW_HIDE);
			if (hwndChild = GetDlgItem(hwnd, IDC_TRAY3_NAME)) 
				ShowWindow(hwndChild, SW_HIDE);
		}
	}
	
   /*****************************************************/
   /* Now see if the envelope feeder is installed -     */
   /* This is elk_media_tray[3] for us, but it          */
   /* corresponds to IDC_MEDIA_SIZE 5.                  */   
   /*****************************************************/
	if (elk_media_tray[3].bInstalled IS TRUE) {
		loadMediaSize(hwnd, IDC_MEDIA_SIZE5, elk_media_tray[3].uMediaSizeID);
	}
	else {
		if (hwndChild = GetDlgItem(hwnd, IDC_MEDIA_SIZE5)) 
			ShowWindow(hwndChild, SW_HIDE);
		if (hwndChild = GetDlgItem(hwnd, IDC_ENVL_NAME)) 
			ShowWindow(hwndChild, SW_HIDE);
	}

	return TRUE;
}
Beispiel #8
0
TrayNotifyDlg::TrayNotifyDlg(HWND hwnd)
 :	super(hwnd),
	_tree_ctrl(GetDlgItem(hwnd, IDC_NOTIFY_ICONS)),
	_himl(ImageList_Create(GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), ILC_COLOR24, 3, 0)),
	_pNotifyArea(static_cast<NotifyArea*>(Window::get_window((HWND)SendMessage(g_Globals._hwndDesktopBar, PM_GET_NOTIFYAREA, 0, 0))))
{
	_selectedItem = 0;

	if (_pNotifyArea) {
		 // save original icon states and configuration data
		for(NotifyIconMap::const_iterator it=_pNotifyArea->_icon_map.begin(); it!=_pNotifyArea->_icon_map.end(); ++it)
			_icon_states_org[it->first] = IconStatePair(it->second._mode, it->second._dwState);

		_cfg_org = _pNotifyArea->_cfg;
		_show_hidden_org = _pNotifyArea->_show_hidden;
	}

	SetWindowIcon(hwnd, IDI_REACTOS);

	_haccel = LoadAccelerators(g_Globals._hInstance, MAKEINTRESOURCE(IDA_TRAYNOTIFY));

	{
	WindowCanvas canvas(_hwnd);
	HBRUSH hbkgnd = GetStockBrush(WHITE_BRUSH);

	ImageList_AddAlphaIcon(_himl, SmallIcon(IDI_DOT), hbkgnd, canvas);
	ImageList_AddAlphaIcon(_himl, SmallIcon(IDI_DOT_TRANS), hbkgnd, canvas);
	ImageList_AddAlphaIcon(_himl, SmallIcon(IDI_DOT_RED), hbkgnd, canvas);
	}

	(void)TreeView_SetImageList(_tree_ctrl, _himl, TVSIL_NORMAL);

	_resize_mgr.Add(IDC_NOTIFY_ICONS,	RESIZE);
	_resize_mgr.Add(IDC_LABEL1,			MOVE_Y);
	_resize_mgr.Add(IDC_NOTIFY_TOOLTIP,	RESIZE_X|MOVE_Y);
	_resize_mgr.Add(IDC_LABEL2,			MOVE_Y);
	_resize_mgr.Add(IDC_NOTIFY_TITLE,	RESIZE_X|MOVE_Y);
	_resize_mgr.Add(IDC_LABEL3,			MOVE_Y);
	_resize_mgr.Add(IDC_NOTIFY_MODULE,	RESIZE_X|MOVE_Y);

	_resize_mgr.Add(IDC_LABEL4,			MOVE_Y);
	_resize_mgr.Add(IDC_NOTIFY_SHOW,	MOVE_Y);
	_resize_mgr.Add(IDC_NOTIFY_HIDE,	MOVE_Y);
	_resize_mgr.Add(IDC_NOTIFY_AUTOHIDE,MOVE_Y);

	_resize_mgr.Add(IDC_PICTURE,		MOVE);
	_resize_mgr.Add(ID_SHOW_HIDDEN_ICONS,MOVE_Y);

	_resize_mgr.Add(IDC_LABEL6,			MOVE_Y);
	_resize_mgr.Add(IDC_LAST_CHANGE,	MOVE_Y);

	_resize_mgr.Add(IDOK,				MOVE);
	_resize_mgr.Add(IDCANCEL,			MOVE);

	_resize_mgr.Resize(+150, +200);

	Refresh();

	SetTimer(_hwnd, 0, 3000, NULL);
	register_pretranslate(hwnd);
}
Beispiel #9
0
INT_PTR CALLBACK DlgProc(HWND hwndDlg,
	 					 UINT uMsg, 
						 WPARAM wParam, 
						 LPARAM lParam)
{
	HDC hdc;
	HICON hIcon;
	char msg[MAX_PATH];
	char *str_lv;
	switch (uMsg) {
		case WM_INITDIALOG:
			CentreDialog(hwndDlg);

			hIcon = LoadIcon(g_hInst, (LPCTSTR)IDI_ICON);
			SetWindowIcon(hwndDlg, hIcon);
			g_hwndDlg = hwndDlg;

			InstDrvInit();
			break;

		case WM_CLOSE:
			EndDialog(hwndDlg, 0);
			break;

		case WM_COMMAND:
			switch (LOWORD(wParam)) {
				case IDC_INSTALL:
					GetDlgItemText(hwndDlg, IDC_SRVNAME, szFileName, MAX_PATH);
					if (lstrlen(szFileName) == 0) {
						SetDlgItemText(hwndDlg, IDC_STATE, "[InstDrv]Please fill in the blank driver file name");
						return FALSE;
					}
					str_lv = strrchr(szFileName, '\\');
					strcpy(szServiceName, ++str_lv);
					*strrchr(szServiceName, '.') = 0;

					if (0 == InstDrvInstall(szServiceName, szFileName))
						SetDlgItemText(hwndDlg, IDC_STATE, "[InstDrv]Install service success");
					break;

				case IDC_START:
					GetDlgItemText(hwndDlg, IDC_SRVNAME, szFileName, MAX_PATH);
					if (lstrlen(szFileName) == 0) {
						SetDlgItemText(hwndDlg, IDC_STATE, "[InstDrv]Please fill in the blank driver file name");
						return FALSE;
					}

					str_lv = strrchr(szFileName, '\\');
					strcpy(szServiceName, ++str_lv);
					*strrchr(szServiceName, '.') = 0;
					if (0 == InstDrvStart(szServiceName, szFileName))
						SetDlgItemText(hwndDlg, IDC_STATE, "[InstDrv]Start service success");
					break;

				case IDC_STOP:
					GetDlgItemText(hwndDlg, IDC_SRVNAME, szFileName, MAX_PATH);
					if (lstrlen(szFileName) == 0) {
						SetDlgItemText(hwndDlg, IDC_STATE, "[InstDrv]Please fill in the blank driver file name");
						return FALSE;
					}

					str_lv = strrchr(szFileName, '\\');
					strcpy(szServiceName, ++str_lv);
					*strrchr(szServiceName, '.') = 0;
					if (0 == InstDrvStart(szServiceName, szFileName))
						SetDlgItemText(hwndDlg, IDC_STATE, "[InstDrv]Stop service success");
					break;

				case IDC_REMOVE:
					GetDlgItemText(hwndDlg, IDC_SRVNAME, szFileName, MAX_PATH);
					if (lstrlen(szFileName) == 0) {
						SetDlgItemText(hwndDlg, IDC_STATE, "[InstDrv]Please fill in the blank driver file name");
						return FALSE;
					}

					str_lv = strrchr(szFileName, '\\');
					strcpy(szServiceName, ++str_lv);
					*strrchr(szServiceName, '.') = 0;
					if (0 == InstDrvRemove(szServiceName, szFileName))
						SetDlgItemText(hwndDlg, IDC_STATE, "[InstDrv]Remove service success");

					InstDrvInit();
					break;

				case IDC_SRVNAME:
					//hdc = GetDC(NULL);
					//line += 20;
					//sprintf(msg, "%10d %10d ", wParam, lParam);
					//TextOutA(hdc, 0, line, msg, strlen(msg));
					//ReleaseDC(hdc, NULL);
					break;
				case IDC_CLOSE:
					EndDialog(hwndDlg, 0);
					break;
			}
			break;
		case WM_LBUTTONDBLCLK:
               ofn.Flags = 0 ;
               if (!GetOpenFileName(&ofn))
                    return FALSE;
			   SetDlgItemText(hwndDlg, IDC_SRVNAME, szFileName);
				
			break;

		default:
			return FALSE;
	}

		
	return TRUE;
}