Exemplo n.º 1
0
static INT_PTR CALLBACK
LoggedOutWindowProc(
    IN HWND hwndDlg,
    IN UINT uMsg,
    IN WPARAM wParam,
    IN LPARAM lParam)
{
    PGINA_CONTEXT pgContext;

    pgContext = (PGINA_CONTEXT)GetWindowLongPtr(hwndDlg, GWL_USERDATA);

    switch (uMsg)
    {
    case WM_INITDIALOG:
        /* FIXME: take care of NoDomainUI */
        pgContext = (PGINA_CONTEXT)lParam;
        SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)pgContext);

        if (pgContext->bDontDisplayLastUserName == FALSE)
            SetDlgItemTextW(hwndDlg, IDC_USERNAME, pgContext->UserName);

        if (pgContext->bDisableCAD == TRUE)
            EnableWindow(GetDlgItem(hwndDlg, IDCANCEL), FALSE);

        if (pgContext->bShutdownWithoutLogon == FALSE)
            EnableWindow(GetDlgItem(hwndDlg, IDC_SHUTDOWN), FALSE);

        SetDomainComboBox(GetDlgItem(hwndDlg, IDC_LOGON_TO), pgContext);

        SetFocus(GetDlgItem(hwndDlg, pgContext->bDontDisplayLastUserName ? IDC_USERNAME : IDC_PASSWORD));

        pgContext->hBitmap = LoadImage(hDllInstance, MAKEINTRESOURCE(IDI_ROSLOGO), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR);
        return TRUE;

    case WM_PAINT:
    {
        PAINTSTRUCT ps;
        HDC hdc;
        if (pgContext->hBitmap)
        {
            hdc = BeginPaint(hwndDlg, &ps);
            DrawStateW(hdc, NULL, NULL, (LPARAM)pgContext->hBitmap, (WPARAM)0, 0, 0, 0, 0, DST_BITMAP);
            EndPaint(hwndDlg, &ps);
        }
        return TRUE;
    }

    case WM_DESTROY:
        DeleteObject(pgContext->hBitmap);
        return TRUE;

    case WM_COMMAND:
        switch (LOWORD(wParam))
        {
        case IDOK:
            if (DoLogon(hwndDlg, pgContext))
                EndDialog(hwndDlg, WLX_SAS_ACTION_LOGON);
            return TRUE;

        case IDCANCEL:
            EndDialog(hwndDlg, WLX_SAS_ACTION_NONE);
            return TRUE;

        case IDC_SHUTDOWN:
            if (OnShutDown(hwndDlg, pgContext) == IDOK)
                EndDialog(hwndDlg, pgContext->nShutdownAction);
            return TRUE;
        }
        break;
    }

    return FALSE;
}
Exemplo n.º 2
0
LRESULT	CSettingConfig::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
	stdstr ConfigRomTitle, GameIni(g_Settings->LoadStringVal(Game_IniKey));

	if (!GameIni.empty())
	{
		ConfigRomTitle.Format("Config: %s",g_Settings->LoadStringVal(Game_GoodName).c_str());
	}

	RECT rcSettingInfo;
	::GetWindowRect(GetDlgItem(IDC_SETTING_INFO),&rcSettingInfo);
	::MapWindowPoints(NULL,m_hWnd,(LPPOINT)&rcSettingInfo,2);

	CConfigSettingSection * SettingsSection;

	//Set the text for all gui Items
	SetDlgItemTextW(m_hWnd, IDC_RESET_PAGE, GS(BOTTOM_RESET_PAGE));
	SetDlgItemTextW(m_hWnd, IDC_RESET_ALL, GS(BOTTOM_RESET_ALL));
	SetDlgItemTextW(m_hWnd, IDOK, GS(CHEAT_OK));
	SetDlgItemTextW(m_hWnd, IDCANCEL, GS(CHEAT_CANCEL));
	SetDlgItemTextW(m_hWnd, IDAPPLY, GS(BOTTOM_APPLY));

	if (m_GameConfig)
	{
		if (g_Settings->LoadBool(Setting_RdbEditor))
		{
			SetWindowText(stdstr_f("%s ** RDB Edit Mode **",ConfigRomTitle.c_str()).c_str());
		} 
		else 
		{
			SetWindowText(ConfigRomTitle.c_str());
		}		
	}
	else 
	{
		if (g_Settings->LoadBool(Setting_RdbEditor))
		{
			SetWindowText(stdstr_f("%ws ** RDB Edit Mode **",GS(OPTIONS_TITLE)).c_str());
		} else {
			::SetWindowTextW(m_hWnd, GS(OPTIONS_TITLE));
		}

		if (g_Settings->LoadBool(Setting_PluginPageFirst))
		{
			SettingsSection = new CConfigSettingSection(GS(TAB_PLUGIN));
			SettingsSection->AddPage(new COptionPluginPage(this->m_hWnd,rcSettingInfo ));
			m_Sections.push_back(SettingsSection);
		}

		m_GeneralOptionsPage = new CGeneralOptionsPage(this,this->m_hWnd,rcSettingInfo );
		m_AdvancedPage = new CAdvancedOptionsPage(this->m_hWnd,rcSettingInfo );

		SettingsSection = new CConfigSettingSection(GS(TAB_OPTIONS));
		SettingsSection->AddPage(m_GeneralOptionsPage);
		SettingsSection->AddPage(m_AdvancedPage);
		SettingsSection->AddPage(new COptionsDirectoriesPage(this->m_hWnd,rcSettingInfo ));
		m_Sections.push_back(SettingsSection);

		SettingsSection = new CConfigSettingSection(GS(TAB_ROMSELECTION));
		SettingsSection->AddPage(new COptionsGameBrowserPage(this->m_hWnd,rcSettingInfo ));
		m_Sections.push_back(SettingsSection);

		SettingsSection = new CConfigSettingSection(GS(TAB_SHORTCUTS));
		SettingsSection->AddPage(new COptionsShortCutsPage(this->m_hWnd,rcSettingInfo ));
		m_Sections.push_back(SettingsSection);

		if (!g_Settings->LoadBool(Setting_PluginPageFirst))
		{
			SettingsSection = new CConfigSettingSection(GS(TAB_PLUGIN));
			SettingsSection->AddPage(new COptionPluginPage(this->m_hWnd,rcSettingInfo ));
			m_Sections.push_back(SettingsSection);
		}
	}

	//Game Settings
	if (!GameIni.empty())
	{
        CConfigSettingSection * GameSettings = new CConfigSettingSection(ConfigRomTitle.ToUTF16().c_str());
		GameSettings->AddPage(new CGameGeneralPage(this->m_hWnd,rcSettingInfo ));
		GameSettings->AddPage(new CGameRecompilePage(this->m_hWnd,rcSettingInfo ));
		GameSettings->AddPage(new CGamePluginPage(this->m_hWnd,rcSettingInfo ));
		if (g_Settings->LoadBool(Setting_RdbEditor))
		{
			GameSettings->AddPage(new CGameStatusPage(this->m_hWnd,rcSettingInfo ));
		}
		m_Sections.push_back(GameSettings);
	}

	
	m_PagesTreeList.Attach(GetDlgItem(IDC_PAGELIST));

	bool bFirstItem = true;
	bool HideAdvanced = g_Settings->LoadBool(UserInterface_BasicMode);
	for (SETTING_SECTIONS::const_iterator iter = m_Sections.begin(); iter != m_Sections.end(); iter++)
	{
		CConfigSettingSection * Section = *iter;
		
		HTREEITEM hSectionItem = NULL;	

		for (size_t i = 0; i < Section->GetPageCount(); i++)
		{
			CSettingsPage * Page = Section->GetPage(i);
			if (HideAdvanced && Page == m_AdvancedPage)
			{
				continue;
			}
			if (i == 0)
			{
				hSectionItem = m_PagesTreeList.InsertItemW(TVIF_TEXT | TVIF_PARAM,Section->GetPageTitle(),0,0,0,0,(ULONG)Page,TVI_ROOT,TVI_LAST);
				continue;
			}
			if (hSectionItem == NULL)
			{
				continue;
			}
			m_PagesTreeList.InsertItemW(TVIF_TEXT | TVIF_PARAM,GS(Page->PageTitle()),0,0,0,0,(ULONG)Page,hSectionItem,TVI_LAST);
		}
		if (bFirstItem && hSectionItem != NULL)
		{
			bFirstItem = false;
			m_PagesTreeList.Expand(hSectionItem);
			m_PagesTreeList.SelectItem(hSectionItem);
		}
	}

	BoldChangedPages(m_PagesTreeList.GetRootItem());
	return TRUE;
}
Exemplo n.º 3
0
BOOL
CALLBACK
EnumConnectionsCallback(
    PSND_MIXER Mixer,
    DWORD LineID,
    LPMIXERLINE Line,
    PVOID Context)
{
    WCHAR LineName[MIXER_LONG_NAME_CHARS];
    DWORD Flags;
    DWORD wID;
    RECT rect;
    UINT ControlCount = 0, Index;
    LPMIXERCONTROL Control = NULL;
    HWND hDlgCtrl;
    PPREFERENCES_CONTEXT PrefContext = (PPREFERENCES_CONTEXT)Context;

    if (Line->cControls != 0)
    {
      /* get line name */
      if (SndMixerGetLineName(PrefContext->MixerWindow->Mixer, PrefContext->SelectedLine, LineName, MIXER_LONG_NAME_CHARS, TRUE) == -1)
      {
          /* failed to get line name */
          LineName[0] = L'\0';
      }

      /* check if line is found in registry settings */
      if (ReadLineConfig(PrefContext->DeviceName,
                         LineName,
                         Line->szName,
                         &Flags))
      {
          /* is it selected */
          if (Flags != 0x4)
          {
              /* load dialog resource */
              LoadDialog(hAppInstance, PrefContext->MixerWindow, MAKEINTRESOURCE(IDD_VOLUME_CTRL), PrefContext->Count);

              /* get id */
              wID = (PrefContext->Count + 1) * IDC_LINE_NAME;

              /* set line name */
              SetDlgItemTextW(PrefContext->MixerWindow->hWnd, wID, Line->szName);

              /* query controls */
              if (SndMixerQueryControls(Mixer, &ControlCount, Line, &Control) == TRUE)
              {
                  /* now go through all controls and update their states */
                  for(Index = 0; Index < ControlCount; Index++)
                  {
                     if ((Control[Index].dwControlType & MIXERCONTROL_CT_CLASS_MASK) == MIXERCONTROL_CT_CLASS_SWITCH)
                     {
                         MIXERCONTROLDETAILS_BOOLEAN Details;

                         /* get volume control details */
                         if (SndMixerGetVolumeControlDetails(Mixer, Control[Index].dwControlID, sizeof(MIXERCONTROLDETAILS_BOOLEAN), (LPVOID)&Details) != -1)
                         {
                             /* update dialog control */
                             wID = (PrefContext->Count + 1) * IDC_LINE_SWITCH;

                            /* get dialog control */
                            hDlgCtrl = GetDlgItem(PrefContext->MixerWindow->hWnd, wID);

                            if (hDlgCtrl != NULL)
                            {
                                /* check state */
                                if (SendMessageW(hDlgCtrl, BM_GETCHECK, 0, 0) != Details.fValue)
                                {
                                    /* update control state */
                                    SendMessageW(hDlgCtrl, BM_SETCHECK, (WPARAM)Details.fValue, 0);
                                }
                            }
                         }
                     }
                     else if ((Control[Index].dwControlType & MIXERCONTROL_CT_CLASS_MASK) == MIXERCONTROL_CT_CLASS_FADER)
                     {
                         MIXERCONTROLDETAILS_UNSIGNED Details;

                         /* get volume control details */
                         if (SndMixerGetVolumeControlDetails(Mixer, Control[Index].dwControlID, sizeof(MIXERCONTROLDETAILS_UNSIGNED), (LPVOID)&Details) != -1)
                         {
                             /* update dialog control */
                             DWORD Position;
                             DWORD Step = 0x10000 / 5;

                             /* FIXME: give me granularity */
                             Position = 5 - (Details.dwValue / Step);

                             /* FIXME support left - right slider */
                             wID = (PrefContext->Count + 1) * IDC_LINE_SLIDER_VERT;

                             /* get dialog control */
                             hDlgCtrl = GetDlgItem(PrefContext->MixerWindow->hWnd, wID);

                             if (hDlgCtrl != NULL)
                             {
                                 /* check state */
                                 LRESULT OldPosition = SendMessageW(hDlgCtrl, TBM_GETPOS, 0, 0);
                                 if (OldPosition != Position)
                                 {
                                     /* update control state */
                                     SendMessageW(hDlgCtrl, TBM_SETPOS, (WPARAM)TRUE, Position + Index);
                                 }
                             }
                        }
                     }
                  }

                  /* free controls */
                  HeapFree(GetProcessHeap(), 0, Control);
              }

              /* increment dialog count */
              PrefContext->Count++;

              /* get application rectangle */
              GetWindowRect(PrefContext->MixerWindow->hWnd, &rect);

              /* now move the window */
              MoveWindow(PrefContext->MixerWindow->hWnd, rect.left, rect.top, (PrefContext->Count * DIALOG_VOLUME_SIZE), rect.bottom - rect.top, TRUE);
          }
      }
    }
    return TRUE;
}
Exemplo n.º 4
0
// Reset all controls to their default values (except for static controls)
void ResetDlgDefaults()
{
    SetDlgItemTextW(gEditDlg, IDC_LOCALIZATIONTEXT, L"");
}
Exemplo n.º 5
0
void SetDlgItemString(HWND hwndDlg, UINT idItem, std::wstring const &str)
{
	SetDlgItemTextW(hwndDlg, idItem, str.c_str());
}
Exemplo n.º 6
0
DWORD CALLBACK AboutIniBoxProc(HWND hDlg, DWORD uMsg, DWORD wParam, DWORD /*lParam*/)
{
	static wchar_t RDBHomePage[300], CHTHomePage[300], RDXHomePage[300];

	switch (uMsg) {
	case WM_INITDIALOG:
	{
		wchar_t String[200];

		//Title
		LONG_PTR originalWndProc = GetWindowLongPtrW(hDlg, GWLP_WNDPROC);
		SetWindowLongPtrW(hDlg, GWLP_WNDPROC, (LONG_PTR) DefWindowProcW);
		SetWindowTextW(hDlg, GS(INI_TITLE));
		SetWindowLongPtrW(hDlg, GWLP_WNDPROC, originalWndProc);

		//Language
		SetDlgItemTextW(hDlg, IDC_LAN, GS(INI_CURRENT_LANG));
		set_about_field(hDlg, IDC_LAN_AUTHOR, GS(INI_AUTHOR), GS(LANGUAGE_AUTHOR));
		set_about_field(hDlg, IDC_LAN_VERSION, GS(INI_VERSION), GS(LANGUAGE_VERSION));
		set_about_field(hDlg, IDC_LAN_DATE, GS(INI_DATE), GS(LANGUAGE_DATE));
		if (wcslen(GS(LANGUAGE_NAME)) == 0)
		{
			EnableWindow(GetDlgItem(hDlg, IDC_LAN), FALSE);
			EnableWindow(GetDlgItem(hDlg, IDC_LAN_AUTHOR), FALSE);
			EnableWindow(GetDlgItem(hDlg, IDC_LAN_VERSION), FALSE);
			EnableWindow(GetDlgItem(hDlg, IDC_LAN_DATE), FALSE);
		}
		//RDB
		CIniFile RdbIniFile(g_Settings->LoadStringVal(SupportFile_RomDatabase).c_str());
		wcsncpy(String, RdbIniFile.GetString("Meta", "Author", "").ToUTF16().c_str(), sizeof(String) / sizeof(String[0]));
		if (wcslen(String) == 0)
		{
			EnableWindow(GetDlgItem(hDlg, IDC_RDB), FALSE);
			EnableWindow(GetDlgItem(hDlg, IDC_RDB_AUTHOR), FALSE);
			EnableWindow(GetDlgItem(hDlg, IDC_RDB_VERSION), FALSE);
			EnableWindow(GetDlgItem(hDlg, IDC_RDB_DATE), FALSE);
			EnableWindow(GetDlgItem(hDlg, IDC_RDB_HOME), FALSE);
		}

		set_about_field(hDlg, IDC_RDB_AUTHOR, GS(INI_AUTHOR), String);

		wcsncpy(String, RdbIniFile.GetString("Meta", "Version", "").ToUTF16().c_str(), sizeof(String) / sizeof(String[0]));
		set_about_field(hDlg, IDC_RDB_VERSION, GS(INI_VERSION), String);
		wcsncpy(String, RdbIniFile.GetString("Meta", "Date", "").ToUTF16().c_str(), sizeof(String) / sizeof(String[0]));
		set_about_field(hDlg, IDC_RDB_DATE, GS(INI_DATE), String);
		wcsncpy(RDBHomePage, RdbIniFile.GetString("Meta", "Homepage", "").ToUTF16().c_str(), sizeof(RDBHomePage) / sizeof(RDBHomePage[0]));
		SetDlgItemTextW(hDlg, IDC_RDB_HOME, GS(INI_HOMEPAGE));
		if (wcslen(RDBHomePage) == 0)
		{
			EnableWindow(GetDlgItem(hDlg, IDC_RDB_HOME), FALSE);
		}

		//Cheat
		SetDlgItemTextW(hDlg, IDC_CHT, GS(INI_CURRENT_CHT));
		CIniFile CheatIniFile(g_Settings->LoadStringVal(SupportFile_Cheats).c_str());
		wcsncpy(String, CheatIniFile.GetString("Meta", "Author", "").ToUTF16().c_str(), sizeof(String) / sizeof(String[0]));
		if (wcslen(String) == 0)
		{
			EnableWindow(GetDlgItem(hDlg, IDC_CHT), FALSE);
			EnableWindow(GetDlgItem(hDlg, IDC_CHT_AUTHOR), FALSE);
			EnableWindow(GetDlgItem(hDlg, IDC_CHT_VERSION), FALSE);
			EnableWindow(GetDlgItem(hDlg, IDC_CHT_DATE), FALSE);
			EnableWindow(GetDlgItem(hDlg, IDC_CHT_HOME), FALSE);
		}
		set_about_field(hDlg, IDC_CHT_AUTHOR, GS(INI_AUTHOR), String);
		wcsncpy(String, CheatIniFile.GetString("Meta", "Version", "").ToUTF16().c_str(), sizeof(String) / sizeof(String[0]));
		set_about_field(hDlg, IDC_CHT_VERSION, GS(INI_VERSION), String);
		wcsncpy(String, CheatIniFile.GetString("Meta", "Date", "").ToUTF16().c_str(), sizeof(String) / sizeof(String[0]));
		set_about_field(hDlg, IDC_CHT_DATE, GS(INI_DATE), String);
		wcsncpy(CHTHomePage, CheatIniFile.GetString("Meta", "Homepage", "").ToUTF16().c_str(), sizeof(CHTHomePage) / sizeof(CHTHomePage[0]));
		SetDlgItemTextW(hDlg, IDC_CHT_HOME, GS(INI_HOMEPAGE));
		if (wcslen(CHTHomePage) == 0)
		{
			EnableWindow(GetDlgItem(hDlg, IDC_CHT_HOME), FALSE);
		}

		//Extended Info
		SetDlgItemTextW(hDlg, IDC_RDX, GS(INI_CURRENT_RDX));
		CIniFile RdxIniFile(g_Settings->LoadStringVal(SupportFile_ExtInfo).c_str());
		wcsncpy(String, RdxIniFile.GetString("Meta", "Author", "").ToUTF16().c_str(), sizeof(String) / sizeof(String[0]));
		if (wcslen(String) == 0)
		{
			EnableWindow(GetDlgItem(hDlg, IDC_RDX), FALSE);
			EnableWindow(GetDlgItem(hDlg, IDC_RDX_AUTHOR), FALSE);
			EnableWindow(GetDlgItem(hDlg, IDC_RDX_VERSION), FALSE);
			EnableWindow(GetDlgItem(hDlg, IDC_RDX_DATE), FALSE);
			EnableWindow(GetDlgItem(hDlg, IDC_RDX_HOME), FALSE);
		}
		set_about_field(hDlg, IDC_RDX_AUTHOR, GS(INI_AUTHOR), String);
		wcsncpy(String, RdxIniFile.GetString("Meta", "Version", "").ToUTF16().c_str(), sizeof(String) / sizeof(String[0]));
		set_about_field(hDlg, IDC_RDX_VERSION, GS(INI_VERSION), String);
		wcsncpy(String, RdxIniFile.GetString("Meta", "Date", "").ToUTF16().c_str(), sizeof(String) / sizeof(String[0]));
		set_about_field(hDlg, IDC_RDX_DATE, GS(INI_DATE), String);
		wcsncpy(RDXHomePage, RdxIniFile.GetString("Meta", "Homepage", "").ToUTF16().c_str(), sizeof(RDXHomePage) / sizeof(RDXHomePage[0]));
		SetDlgItemTextW(hDlg, IDC_RDX_HOME, GS(INI_HOMEPAGE));
		if (wcslen(RDXHomePage) == 0)
		{
			EnableWindow(GetDlgItem(hDlg, IDC_RDX_HOME), FALSE);
		}
		SetDlgItemTextW(hDlg, IDOK, GS(CHEAT_OK));
	}
	break;
	case WM_COMMAND:
		switch (LOWORD(wParam))
		{
		case IDC_RDB_HOME: ShellExecuteW(NULL, L"open", RDBHomePage, NULL, NULL, SW_SHOWNORMAL); break;
		case IDC_CHT_HOME: ShellExecuteW(NULL, L"open", CHTHomePage, NULL, NULL, SW_SHOWNORMAL); break;
		case IDC_RDX_HOME: ShellExecuteW(NULL, L"open", RDXHomePage, NULL, NULL, SW_SHOWNORMAL); break;
		case IDOK:
		case IDCANCEL:
			EndDialog(hDlg, 0);
			break;
		}
	default:
		return FALSE;
	}
	return TRUE;
}
Exemplo n.º 7
0
BOOL
CFileDefExt::CountFolderAndFiles(HWND hwndDlg, LPWSTR pwszBuf, UINT cchBufMax, DWORD *ticks)
{
    /* Find filename position */
    UINT cchBuf = wcslen(pwszBuf);
    WCHAR *pwszFilename = pwszBuf + cchBuf;
    size_t cchFilenameMax = cchBufMax - cchBuf;
    if (!cchFilenameMax)
        return FALSE;
    *(pwszFilename++) = '\\';
    --cchFilenameMax;

    /* Find all files, FIXME: shouldn't be "*"? */
    StringCchCopyW(pwszFilename, cchFilenameMax, L"*");

    WIN32_FIND_DATAW wfd;
    HANDLE hFind = FindFirstFileW(pwszBuf, &wfd);
    if (hFind == INVALID_HANDLE_VALUE)
    {
        ERR("FindFirstFileW %ls failed\n", pwszBuf);
        return FALSE;
    }

    BOOL root = FALSE;
    if (*ticks == 0) {
        *ticks = GetTickCount();
        root = TRUE;
    }

    do
    {
        if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
        {
            /* Don't process "." and ".." items */
            if (!wcscmp(wfd.cFileName, L".") || !wcscmp(wfd.cFileName, L".."))
                continue;

            ++m_cFolders;

            StringCchCopyW(pwszFilename, cchFilenameMax, wfd.cFileName);
            CountFolderAndFiles(hwndDlg, pwszBuf, cchBufMax, ticks);
        }
        else
        {
            m_cFiles++;

            ULARGE_INTEGER FileSize;
            FileSize.u.LowPart  = wfd.nFileSizeLow;
            FileSize.u.HighPart = wfd.nFileSizeHigh;
            m_DirSize.QuadPart += FileSize.QuadPart;
        }
        if (GetTickCount() - *ticks > (DWORD) 300)
        {
            /* FIXME Using IsWindow is generally ill advised */
            if (IsWindow(hwndDlg))
            {
                WCHAR wszBuf[MAX_PATH];

                if (SH_FormatFileSizeWithBytes(&m_DirSize, wszBuf, _countof(wszBuf)))
                    SetDlgItemTextW(hwndDlg, 14011, wszBuf);

                /* Display files and folders count */
                WCHAR wszFormat[256];
                LoadStringW(shell32_hInstance, IDS_FILE_FOLDER, wszFormat, _countof(wszFormat));
                StringCchPrintfW(wszBuf, _countof(wszBuf), wszFormat, m_cFiles, m_cFolders);
                SetDlgItemTextW(hwndDlg, 14027, wszBuf);
                *ticks = GetTickCount();
            }
            else
                break;
        }
    } while(FindNextFileW(hFind, &wfd));

    if (root && IsWindow(hwndDlg))
    {
        WCHAR wszBuf[MAX_PATH];

        if (SH_FormatFileSizeWithBytes(&m_DirSize, wszBuf, _countof(wszBuf)))
            SetDlgItemTextW(hwndDlg, 14011, wszBuf);

        /* Display files and folders count */
        WCHAR wszFormat[256];
        LoadStringW(shell32_hInstance, IDS_FILE_FOLDER, wszFormat, _countof(wszFormat));
        StringCchPrintfW(wszBuf, _countof(wszBuf), wszFormat, m_cFiles, m_cFolders);
        SetDlgItemTextW(hwndDlg, 14027, wszBuf);
    }

    FindClose(hFind);
    return TRUE;
}
void CBacnetUserConfig::OnBnClickedButtonUserOk()
{
	// TODO: Add your control notification handler code here
	char temp_buffer[255];
	int compare_ret = 0;
	CString temp_enter_original;
	CString first_pw;
	CString second_pw;
	CString temp_user_name;
	CString access_string;
	switch(ok_button_stage)
	{
	case stage_enter_original_password://检查原始密码是否正确;
		{
			//m_user_login_data.at(m_slected_item).password
			GetDlgItemTextW(IDC_EDIT_USER_NAME,temp_user_name);
			GetDlgItemTextW(IDC_EDIT_USER_PASSWORD,temp_enter_original);
			if(temp_user_name.IsEmpty())
			{
				MessageBox(_T("user name is empty"),_T("Warning"),MB_OK);
				return;
			}
			if(temp_user_name.GetLength()>=STR_USER_NAME_LENGTH)
			{
				MessageBox(_T("User name is too long!"),_T("Warning"),MB_OK);
				return;
			}
			if(temp_enter_original.IsEmpty())
			{
				MessageBox(_T("Password is empty"),_T("Warning"),MB_OK);
				return;
			}
			memset(temp_buffer,0,255);
			WideCharToMultiByte(CP_ACP,NULL,temp_enter_original.GetBuffer(),-1,temp_buffer,255,NULL,NULL);
			compare_ret = strcmp(temp_buffer,m_user_login_data.at(m_slected_item).password);
			if(compare_ret == 0)
			{
				ok_button_stage = stage_enter_new_password;
				Enable_Window_Stage(ENTER_NEW_PASSWORD);
			}
			else
			{
				SetDlgItemTextW(IDC_EDIT_USER_PASSWORD,_T(""));
				MessageBox(_T("Password error"),_T("Warning"),MB_OK);	
				GetDlgItem(IDC_EDIT_USER_PASSWORD)->SetFocus();
				return;
			}
		}
		break;
	case stage_enter_new_password:
		{
			GetDlgItemTextW(IDC_EDIT_USER_NEW_PASSWORD,first_pw);
			if(first_pw.IsEmpty())
			{
				MessageBox(_T("Password is empty"),_T("Warning"),MB_OK);
				return;
			}
			if(first_pw.GetLength()>=STR_USER_PASSWORD_LENGTH)
			{
				MessageBox(_T("Password too long!"),_T("Warning"),MB_OK);
				return;
			}
			ok_button_stage = stage_retype_password;
			Enable_Window_Stage(RETYPE_NEW_PASSWORD);
		}
		break;
	case  stage_retype_password:
		{
			GetDlgItemTextW(IDC_EDIT_USER_NEW_PASSWORD,first_pw);
			GetDlgItemTextW(IDC_EDIT_USER_RETYPE_PASSWORD,second_pw);
			GetDlgItemTextW(IDC_EDIT_USER_NAME,temp_user_name);
			GetDlgItemTextW(IDC_COMBO_ACCESS_LEVEL,access_string);
			
			if(second_pw.IsEmpty())
			{
				MessageBox(_T("Password is empty"),_T("Warning"),MB_OK);
				return;
			}
			if(second_pw.GetLength()>=STR_USER_PASSWORD_LENGTH)
			{
				MessageBox(_T("Password too long!"),_T("Warning"),MB_OK);
				return;
			}

			if(first_pw.CompareNoCase(second_pw) == 0)
			{
				if(temp_user_name.IsEmpty())
				{
					MessageBox(_T("user name is empty"),_T("Warning"),MB_OK);
					return;
				}
				memset(temp_buffer,0,255);
				WideCharToMultiByte(CP_ACP,NULL,temp_user_name.GetBuffer(),-1,temp_buffer,255,NULL,NULL);
				memcpy(m_user_login_data.at(m_slected_item).name,temp_buffer,STR_USER_NAME_LENGTH);

				if(access_string.CompareNoCase(_T("View only")) == 0 )
				{
					m_user_login_data.at(m_slected_item).access_level = 1;
				}
				else if(access_string.CompareNoCase(_T("Graphic Mode")) == 0)
				{
					m_user_login_data.at(m_slected_item).access_level = 3;
				}
				else if(access_string.CompareNoCase(_T("Routine Mode")) == 0)
				{
					m_user_login_data.at(m_slected_item).access_level = 4;
				}
				else
					m_user_login_data.at(m_slected_item).access_level = 2;
				//_T("View only"));
				//_T("Full access"));

				memset(temp_buffer,0,255);
				WideCharToMultiByte(CP_ACP,NULL,second_pw.GetBuffer(),-1,temp_buffer,255,NULL,NULL);
				memcpy(m_user_login_data.at(m_slected_item).password,temp_buffer,STR_USER_PASSWORD_LENGTH);

				//Post_Write_Message(g_bac_instance,WRITEUSER_T3000,m_slected_item,m_slected_item,sizeof(Str_userlogin_point),m_user_config_hwnd ,_T(""),m_slected_item,m_slected_item);
				int temp_invoke_id = -1;
				int send_status = true;
				int	resend_count = 0;
				for (int z=0;z<3;z++)
				{
					do 
					{
						resend_count ++;
						if(resend_count>5)
						{
							send_status = false;
							break;
						}
						temp_invoke_id = WritePrivateData(g_bac_instance,WRITEUSER_T3000,m_slected_item,m_slected_item);

						Sleep(SEND_COMMAND_DELAY_TIME);
					} while (g_invoke_id<0);
					if(send_status)
					{
						Sleep(1000);
						if(tsm_invoke_id_free(temp_invoke_id))
						{
							ok_button_stage = 0;
							PostMessage(WM_REFRESH_BAC_USER_NAME_LIST,NULL,NULL);
							Enable_Window_Stage(HIDE_ALL);
							MessageBox(_T("Operation success!"),_T("Information"),MB_OK);
							return;
						}
						else
							continue;
					}
				}



			}
			else
			{
				MessageBox(_T("Password is not the same!"),_T("Warning"),MB_OK);
				return;
			}
		}
		break;
	default:
		break;
	}
}
Exemplo n.º 9
0
static BOOL CALLBACK RecordDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	static struct CreateMovieParameters* p = NULL;

	switch(uMsg)
	{
	case WM_INITDIALOG:
		p = (struct CreateMovieParameters*)lParam;
		UpdateRecordDialogPath(hwndDlg, p->szFilename);
		p->szFilename = "";

		if (strlen(taseditorConfig.lastAuthorName))
		{
			// convert UTF8 char* string to Unicode wstring
			wchar_t savedAuthorName[AUTHOR_NAME_MAX_LEN] = {0};
			MultiByteToWideChar(CP_UTF8, 0, taseditorConfig.lastAuthorName, -1, savedAuthorName, AUTHOR_NAME_MAX_LEN);
			p->authorName = savedAuthorName;
		} else
		{
			p->authorName = L"";
		}
		SendMessage(GetDlgItem(hwndDlg, IDC_EDIT_AUTHOR), CCM_SETUNICODEFORMAT, TRUE, 0);
		SetDlgItemTextW(hwndDlg, IDC_EDIT_AUTHOR, (LPCWSTR)(p->authorName.c_str()));

		// Populate the "record from..." dialog
		{
			char* findGlob=strdup(FCEU_MakeFName(FCEUMKF_STATEGLOB, 0, 0).c_str());
			WIN32_FIND_DATA wfd;
			HANDLE hFind;
			int i=0;

			SendDlgItemMessage(hwndDlg, IDC_COMBO_RECORDFROM, CB_INSERTSTRING, i++, (LPARAM)"Start");
			SendDlgItemMessage(hwndDlg, IDC_COMBO_RECORDFROM, CB_INSERTSTRING, i++, (LPARAM)"Now");

			memset(&wfd, 0, sizeof(wfd));
			hFind = FindFirstFile(findGlob, &wfd);
			if(hFind != INVALID_HANDLE_VALUE)
			{
				do
				{
					if ((wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ||
						(wfd.dwFileAttributes & FILE_ATTRIBUTE_READONLY))
						continue;

					if (strlen(wfd.cFileName) < 4 ||
						!strcmp(wfd.cFileName + (strlen(wfd.cFileName) - 4), ".fm2"))
						continue;

					SendDlgItemMessage(hwndDlg, IDC_COMBO_RECORDFROM, CB_INSERTSTRING, i++, (LPARAM)wfd.cFileName);
				} while(FindNextFile(hFind, &wfd));
				FindClose(hFind);
			}
			free(findGlob);

			SendDlgItemMessage(hwndDlg, IDC_COMBO_RECORDFROM, CB_INSERTSTRING, i++, (LPARAM)"Browse...");
			SendDlgItemMessage(hwndDlg, IDC_COMBO_RECORDFROM, CB_SETCURSEL, p->recordFrom, 0);
		}
		UpdateRecordDialog(hwndDlg);

		return TRUE;

	case WM_COMMAND:
		if(HIWORD(wParam) == CBN_SELCHANGE)
		{
			LONG lIndex = SendDlgItemMessage(hwndDlg, IDC_COMBO_RECORDFROM, CB_GETCURSEL, 0, 0);
			if(lIndex == CB_ERR)
			{
				// fix listbox selection
				SendDlgItemMessage(hwndDlg, IDC_COMBO_RECORDFROM, CB_SETCURSEL, (WPARAM)0, 0);
			}
			UpdateRecordDialog(hwndDlg);
			return TRUE;
		}
		else if(HIWORD(wParam) == CBN_CLOSEUP)
		{
			LONG lCount = SendDlgItemMessage(hwndDlg, IDC_COMBO_RECORDFROM, CB_GETCOUNT, 0, 0);
			LONG lIndex = SendDlgItemMessage(hwndDlg, IDC_COMBO_RECORDFROM, CB_GETCURSEL, 0, 0);
			if (lIndex != CB_ERR && lIndex == lCount-1)
			{
				OPENFILENAME ofn;
				char szChoice[MAX_PATH]={0};

				// pop open a file browser to choose the savestate
				memset(&ofn, 0, sizeof(ofn));
				ofn.lStructSize = sizeof(ofn);
				ofn.hwndOwner = hwndDlg;
				ofn.lpstrFilter = "FCEU Save State (*.fc?)\0*.fc?\0\0";
				ofn.lpstrFile = szChoice;
				ofn.lpstrDefExt = "fcs";
				ofn.nMaxFile = MAX_PATH;
				if(GetOpenFileName(&ofn))
				{
					SendDlgItemMessage(hwndDlg, IDC_COMBO_RECORDFROM, CB_INSERTSTRING, lIndex, (LPARAM)szChoice);
					SendDlgItemMessage(hwndDlg, IDC_COMBO_RECORDFROM, CB_SETCURSEL, (WPARAM)lIndex, 0);
				}
				else
					UpdateRecordDialog(hwndDlg);
			}
			return TRUE;
		}
		else if(HIWORD(wParam) == EN_CHANGE && LOWORD(wParam) == IDC_EDIT_FILENAME)
		{
			UpdateRecordDialog(hwndDlg);
		}
		else
		{
			switch(LOWORD(wParam))
			{
			case IDOK:
				{
					LONG lIndex = SendDlgItemMessage(hwndDlg, IDC_COMBO_RECORDFROM, CB_GETCURSEL, 0, 0);
					p->szFilename = GetRecordPath(hwndDlg);
					p->recordFrom = (int)lIndex;
					// save author name in params and in config (converted to multibyte char*)
					wchar_t authorName[AUTHOR_NAME_MAX_LEN] = {0};
					GetDlgItemTextW(hwndDlg, IDC_EDIT_AUTHOR, (LPWSTR)authorName, AUTHOR_NAME_MAX_LEN);
					p->authorName = authorName;
					if (p->authorName == L"")
						taseditorConfig.lastAuthorName[0] = 0;
					else
						// convert Unicode wstring to UTF8 char* string
						WideCharToMultiByte(CP_UTF8, 0, (p->authorName).c_str(), -1, taseditorConfig.lastAuthorName, AUTHOR_NAME_MAX_LEN, 0, 0);

					if (lIndex >= 2)
						p->szSavestateFilename = GetSavePath(hwndDlg);
					EndDialog(hwndDlg, 1);
				}
				return TRUE;

			case IDCANCEL:
				EndDialog(hwndDlg, 0);
				return TRUE;

			case IDC_BUTTON_BROWSEFILE:
				{
					OPENFILENAME ofn;
					char szChoice[MAX_PATH]={0};

					// browse button
					memset(&ofn, 0, sizeof(ofn));
					ofn.lStructSize = sizeof(ofn);
					ofn.hwndOwner = hwndDlg;
					ofn.lpstrFilter = "FCEUX Movie File (*.fm2)\0*.fm2\0All Files (*.*)\0*.*\0\0";
					ofn.lpstrFile = szChoice;
					ofn.lpstrDefExt = "fm2";
					ofn.nMaxFile = MAX_PATH;
					ofn.Flags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
					if(GetSaveFileName(&ofn)) {
						UpdateRecordDialogPath(hwndDlg,szChoice);
					}
				}
				return TRUE;
			}
		}
	}

	return FALSE;
}
Exemplo n.º 10
0
/////////////////////////////////////////////////////////
//
// DlgProc
//
//        The DlgProc function is an application-defined
//        function that processes messages sent to the dialog
//
// Parameters:
//        HWND hwnd      : [in] handle to dialog window
//        UINT uMsg      : [in] message identifier
//        WPARAM wParam  : [in] first message parameter
//        LPARAM lParam  : [in] second message parameter
//
// Return Values:
//        The return value is the result of the
//        message processing and depends on the message sent
//
/////////////////////////////////////////////////////////
BOOL CALLBACK DlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM /* lParam */)
{
    BOOL bReturn = FALSE; // the value to return
    switch (uMsg)
    {
        case WM_INITDIALOG:
        {
            // Initialize the COM
            if (FAILED(CoInitialize(NULL)))
            {
                MessageBoxW(NULL, L"Unable to initialize the COM library",
                            gc_wszAppName, MB_OK | MB_ICONINFORMATION);
                PostMessage(hwnd, WM_CLOSE, 0, 0);
                break;
            }

            // Gather and show the information we're interested in

            // Check out if Microsoft Tablet PC Platform components of the
            // Microsoft Windows XP Professional Operating System are enabled
            int bTabletPC = GetSystemMetrics(SM_TABLETPC);
            SetDlgItemTextW(hwnd, IDC_TABLETPC,
                            bTabletPC ? L"Available" : L"Not available");

            // Get the version of the Text Services Framework components
            SInfo info;
            if (GetComponentInfo(CLSID_TF_ThreadMgr, info) == TRUE)
            {
                SetDlgItemTextW(hwnd, IDC_TSF, info.wchVersion);
            }

            // Find out the name and the version of the default handwriting recognizer
            // Create the enumerator for the installed recognizers
            IInkRecognizers* pIInkRecognizers = NULL;
            HRESULT hr = CoCreateInstance(CLSID_InkRecognizers,
                                          NULL,
                                          CLSCTX_INPROC_SERVER,
                                          IID_IInkRecognizers,
                                          (void **)&pIInkRecognizers);
            if (SUCCEEDED(hr))
            {
                IInkRecognizer* pIInkRecognizer = NULL;
                // The first parameter is the language id, passing 0 means that the language
                // id will be retrieved using the user default-locale identifier
                hr = pIInkRecognizers->GetDefaultRecognizer(0, &pIInkRecognizer);
                if (SUCCEEDED(hr))
                {
                    // Get the recognizer's friendly name
                    BSTR bstr;
                    if (SUCCEEDED(pIInkRecognizer->get_Name(&bstr)))
                    {
                        SetDlgItemTextW(hwnd, IDC_HWR_NAME, bstr);
                        SysFreeString(bstr);
                    }
                    else
                    {
                        SetDlgItemTextW(hwnd, IDC_HWR_NAME, L"Failed");
                    }
                    // Get the recognizer's vendor info
                    if (SUCCEEDED(pIInkRecognizer->get_Vendor(&bstr)))
                    {
                        SetDlgItemTextW(hwnd, IDC_HWR_VENDOR, bstr);
                        SysFreeString(bstr);
                    }
                    else
                    {
                        SetDlgItemTextW(hwnd, IDC_HWR_VENDOR, L"Failed");
                    }
                    // Release it
                    pIInkRecognizer->Release();
                    pIInkRecognizer = NULL;
                }
                // Release the collection object
                pIInkRecognizers->Release();
                pIInkRecognizers = NULL;
            }

            // Find out the name and the version of the default speech recognizer

            // Open key to find path of application
            HKEY hkeySpeech;
            if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, gc_wszSpeechKey, 0, KEY_READ,
                            &hkeySpeech) == ERROR_SUCCESS)
            {
                // Query value of key to get the name of the component
                WCHAR wchValue[265];
                ULONG cSize = sizeof(wchValue);
                if (RegQueryValueExW(hkeySpeech, L"DefaultDefaultTokenId", NULL, NULL,
                                    (BYTE*)wchValue, &cSize) == ERROR_SUCCESS)
                {
                    int ndx = lstrlenW(L"HKEY_LOCAL_MACHINE\\");
                    int len = lstrlenW(wchValue);
                    if (ndx < len
                        && RegOpenKeyExW(HKEY_LOCAL_MACHINE, &wchValue[ndx], 0,
                                         KEY_READ, &hkeySpeech) == ERROR_SUCCESS)
                    {
                        cSize = sizeof(wchValue);
                        if (RegQueryValueExW(hkeySpeech, NULL, NULL, NULL,
                                             (BYTE*)wchValue, &cSize) == ERROR_SUCCESS)
                        {
                            SetDlgItemTextW(hwnd, IDC_SPR_NAME, wchValue);
                        }
                    }
                }
            }

            // Find out which of the controls are installed and show their version info
            for (int i = 0, j = 0; i < NUM_CONTROLS; i++)
            {
                // Get the component info
                CLSID clsid;
                if (SUCCEEDED(CLSIDFromProgID(gc_wszProgId[i], &clsid))
                    && GetComponentInfo(clsid, info) == TRUE)
                {
                    SetDlgItemTextW(hwnd, gc_uiCtrlId[j][0], info.wchName);
                    SetDlgItemTextW(hwnd, gc_uiCtrlId[j][1], info.wchVersion);
                    j++;
                }
            }

            // Done with the COM
            CoUninitialize();

            break;
        }
        case WM_DESTROY:

            PostQuitMessage(0);
            break;

        case WM_COMMAND:
            switch (LOWORD(wParam))
            {
                case IDCLOSE:   // User clicked on the "Close" button in the dialog.
                case IDCANCEL:  // User clicked the close button ([X]) in the caption
                                // or pressed Alt+F4.
                    DestroyWindow(hwnd);
                    bReturn = TRUE;
                    break;
            }
            break;
    }

    return bReturn;
}
Exemplo n.º 11
0
LONG FD31_WMInitDialog(HWND hWnd, WPARAM wParam, LPARAM lParam)
{
  int i, n;
  WCHAR tmpstr[BUFFILE];
  LPWSTR pstr, old_pstr;
  LPOPENFILENAMEW ofn;
  PFD31_DATA lfs = (PFD31_DATA) lParam;

  if (!lfs) return FALSE;
  SetPropA(hWnd, FD31_OFN_PROP, (HANDLE)lfs);
  lfs->hwnd = hWnd;
  ofn = lfs->ofnW;

  TRACE("flags=%x initialdir=%s\n", ofn->Flags, debugstr_w(ofn->lpstrInitialDir));

  SetWindowTextW( hWnd, ofn->lpstrTitle );
  /* read custom filter information */
  if (ofn->lpstrCustomFilter)
    {
      pstr = ofn->lpstrCustomFilter;
      n = 0;
      TRACE("lpstrCustomFilter = %p\n", pstr);
      while(*pstr)
	{
	  old_pstr = pstr;
          i = SendDlgItemMessageW(hWnd, cmb1, CB_ADDSTRING, 0,
                                   (LPARAM)(ofn->lpstrCustomFilter) + n );
          n += lstrlenW(pstr) + 1;
	  pstr += lstrlenW(pstr) + 1;
	  TRACE("add str=%s associated to %s\n",
                debugstr_w(old_pstr), debugstr_w(pstr));
          SendDlgItemMessageW(hWnd, cmb1, CB_SETITEMDATA, i, (LPARAM)pstr);
          n += lstrlenW(pstr) + 1;
	  pstr += lstrlenW(pstr) + 1;
	}
    }
  /* read filter information */
  if (ofn->lpstrFilter) {
	pstr = (LPWSTR) ofn->lpstrFilter;
	n = 0;
	while(*pstr) {
	  old_pstr = pstr;
	  i = SendDlgItemMessageW(hWnd, cmb1, CB_ADDSTRING, 0,
				       (LPARAM)(ofn->lpstrFilter + n) );
	  n += lstrlenW(pstr) + 1;
	  pstr += lstrlenW(pstr) + 1;
	  TRACE("add str=%s associated to %s\n",
                debugstr_w(old_pstr), debugstr_w(pstr));
	  SendDlgItemMessageW(hWnd, cmb1, CB_SETITEMDATA, i, (LPARAM)pstr);
	  n += lstrlenW(pstr) + 1;
	  pstr += lstrlenW(pstr) + 1;
	}
  }
  /* set default filter */
  if (ofn->nFilterIndex == 0 && ofn->lpstrCustomFilter == NULL)
  	ofn->nFilterIndex = 1;
  SendDlgItemMessageW(hWnd, cmb1, CB_SETCURSEL, ofn->nFilterIndex - 1, 0);
  if (ofn->lpstrFile && ofn->lpstrFile[0])
  {
    TRACE( "SetText of edt1 to %s\n", debugstr_w(ofn->lpstrFile) );
    SetDlgItemTextW( hWnd, edt1, ofn->lpstrFile );
  }
  else
  {
    lstrcpynW(tmpstr, FD31_GetFileType(ofn->lpstrCustomFilter,
	     ofn->lpstrFilter, ofn->nFilterIndex - 1),BUFFILE);
    TRACE("nFilterIndex = %d, SetText of edt1 to %s\n",
  			ofn->nFilterIndex, debugstr_w(tmpstr));
    SetDlgItemTextW( hWnd, edt1, tmpstr );
  }
  /* get drive list */
  *tmpstr = 0;
  DlgDirListComboBoxW(hWnd, tmpstr, cmb2, 0, DDL_DRIVES | DDL_EXCLUSIVE);
  /* read initial directory */
  /* FIXME: Note that this is now very version-specific (See MSDN description of
   * the OPENFILENAME structure).  For example under 2000/XP any path in the
   * lpstrFile overrides the lpstrInitialDir, but not under 95/98/ME
   */
  if (ofn->lpstrInitialDir != NULL)
    {
      int len;
      lstrcpynW(tmpstr, ofn->lpstrInitialDir, 511);
      len = lstrlenW(tmpstr);
      if (len > 0 && tmpstr[len-1] != '\\'  && tmpstr[len-1] != ':') {
        tmpstr[len]='\\';
        tmpstr[len+1]='\0';
      }
    }
  else
    *tmpstr = 0;
  if (!FD31_ScanDir(ofn, hWnd, tmpstr)) {
    *tmpstr = 0;
    if (!FD31_ScanDir(ofn, hWnd, tmpstr))
      WARN("Couldn't read initial directory %s!\n", debugstr_w(tmpstr));
  }
  /* select current drive in combo 2, omit missing drives */
  {
      char dir[MAX_PATH];
      char str[4] = "a:\\";
      GetCurrentDirectoryA( sizeof(dir), dir );
      for(i = 0, n = -1; i < 26; i++)
      {
          str[0] = 'a' + i;
          if (GetDriveTypeA(str) > DRIVE_NO_ROOT_DIR) n++;
          if (toupper(str[0]) == toupper(dir[0])) break;
      }
  }
  SendDlgItemMessageW(hWnd, cmb2, CB_SETCURSEL, n, 0);
  if (!(ofn->Flags & OFN_SHOWHELP))
    ShowWindow(GetDlgItem(hWnd, pshHelp), SW_HIDE);
  if (ofn->Flags & OFN_HIDEREADONLY)
    ShowWindow(GetDlgItem(hWnd, chx1), SW_HIDE);
  if (lfs->hook)
      return FD31_CallWindowProc(lfs, WM_INITDIALOG, wParam, lfs->lParam);
  return TRUE;
}
Exemplo n.º 12
0
/***********************************************************************
 *                              FD31_TestPath      [internal]
 *      before accepting the file name, test if it includes wild cards
 *      tries to scan the directory and returns TRUE if no error.
 */
static LRESULT FD31_TestPath( const FD31_DATA *lfs, LPWSTR path )
{
    HWND hWnd = lfs->hwnd;
    LPWSTR pBeginFileName, pstr2;
    WCHAR tmpstr2[BUFFILE];

    pBeginFileName = strrchrW(path, '\\');
    if (pBeginFileName == NULL)
	pBeginFileName = strrchrW(path, ':');

    if (strchrW(path,'*') != NULL || strchrW(path,'?') != NULL)
    {
        /* edit control contains wildcards */
        if (pBeginFileName != NULL)
        {
	    lstrcpynW(tmpstr2, pBeginFileName + 1, BUFFILE);
	    *(pBeginFileName + 1) = 0;
	}
	else
	{
	    strcpyW(tmpstr2, path);
            if(!(lfs->ofnW->Flags & OFN_NOVALIDATE))
                *path = 0;
        }

        TRACE("path=%s, tmpstr2=%s\n", debugstr_w(path), debugstr_w(tmpstr2));
        SetDlgItemTextW( hWnd, edt1, tmpstr2 );
        FD31_ScanDir(lfs->ofnW, hWnd, path);
        return (lfs->ofnW->Flags & OFN_NOVALIDATE) ? TRUE : FALSE;
    }

    /* no wildcards, we might have a directory or a filename */
    /* try appending a wildcard and reading the directory */

    pstr2 = path + lstrlenW(path);
    if (pBeginFileName == NULL || *(pBeginFileName + 1) != 0)
        strcatW(path, FILE_bslash);

    /* if ScanDir succeeds, we have changed the directory */
    if (FD31_ScanDir(lfs->ofnW, hWnd, path))
        return FALSE; /* and path is not a valid file name */

    /* if not, this must be a filename */

    *pstr2 = 0; /* remove the wildcard added before */

    if (pBeginFileName != NULL)
    {
        /* strip off the pathname */
        *pBeginFileName = 0;
        SetDlgItemTextW( hWnd, edt1, pBeginFileName + 1 );

        lstrcpynW(tmpstr2, pBeginFileName + 1, sizeof(tmpstr2)/sizeof(WCHAR) );
        /* Should we MessageBox() if this fails? */
        if (!FD31_ScanDir(lfs->ofnW, hWnd, path))
        {
            return FALSE;
        }
        strcpyW(path, tmpstr2);
    }
    else
        SetDlgItemTextW( hWnd, edt1, path );
    return TRUE;
}
Exemplo n.º 13
0
int CALLBACK AssertDialogProc(
  HWND hDlg,  // handle to dialog box
  UINT uMsg,     // message
  WPARAM wParam, // first message parameter
  LPARAM lParam  // second message parameter
)
{
	switch( uMsg )
	{
		case WM_INITDIALOG:
		{
#ifdef TCHAR_IS_WCHAR
			SetDlgItemTextW( hDlg, IDC_ASSERT_MSG_CTRL, g_Info.m_pExpression );
			SetDlgItemTextW( hDlg, IDC_FILENAME_CONTROL, g_Info.m_pFilename );
#else
			SetDlgItemText( hDlg, IDC_ASSERT_MSG_CTRL, g_Info.m_pExpression );
			SetDlgItemText( hDlg, IDC_FILENAME_CONTROL, g_Info.m_pFilename );
#endif
			SetDlgItemInt( hDlg, IDC_LINE_CONTROL, g_Info.m_iLine, false );
			SetDlgItemInt( hDlg, IDC_IGNORE_NUMLINES, g_iLastLineRange, false );
			SetDlgItemInt( hDlg, IDC_IGNORE_NUMTIMES, g_nLastIgnoreNumTimes, false );
		
			// Center the dialog.
			RECT rcDlg, rcDesktop;
			GetWindowRect( hDlg, &rcDlg );
			GetWindowRect( GetDesktopWindow(), &rcDesktop );
			SetWindowPos( 
				hDlg, 
				HWND_TOP, 
				((rcDesktop.right-rcDesktop.left) - (rcDlg.right-rcDlg.left)) / 2,
				((rcDesktop.bottom-rcDesktop.top) - (rcDlg.bottom-rcDlg.top)) / 2,
				0,
				0,
				SWP_NOSIZE );
		}
		return true;

		case WM_COMMAND:
		{
			switch( LOWORD( wParam ) )
			{
				case IDC_IGNORE_FILE:
				{
					IgnoreAssertsInCurrentFile();
					EndDialog( hDlg, 0 );
					return true;
				}

				// Ignore this assert N times.
				case IDC_IGNORE_THIS:
				{
					BOOL bTranslated = false;
					UINT value = GetDlgItemInt( hDlg, IDC_IGNORE_NUMTIMES, &bTranslated, false );
					if ( bTranslated && value > 1 )
					{
						CAssertDisable *pDisable = IgnoreAssertsNearby( 0 );
						pDisable->m_nIgnoreTimes = value - 1;
						g_nLastIgnoreNumTimes = value;
					}

					EndDialog( hDlg, 0 );
					return true;
				}

				// Always ignore this assert.
				case IDC_IGNORE_ALWAYS:
				{
					IgnoreAssertsNearby( 0 );
					EndDialog( hDlg, 0 );
					return true;
				}
				
				case IDC_IGNORE_NEARBY:
				{
					BOOL bTranslated = false;
					UINT value = GetDlgItemInt( hDlg, IDC_IGNORE_NUMLINES, &bTranslated, false );
					if ( !bTranslated || value < 1 )
						return true;

					IgnoreAssertsNearby( value );
					EndDialog( hDlg, 0 );
					return true;
				}

				case IDC_IGNORE_ALL:
				{
					g_bAssertsEnabled = false;
					EndDialog( hDlg, 0 );
					return true;
				}

				case IDC_BREAK:
				{
					g_bBreak = true;
					EndDialog( hDlg, 0 );
					return true;
				}
			}

			case WM_KEYDOWN:
			{
				// Escape?
				if ( wParam == 2 )
				{
					// Ignore this assert.
					EndDialog( hDlg, 0 );
					return true;
				}
			}
					
		}
		return true;
	}

	return FALSE;
}
Exemplo n.º 14
0
BOOL
CFileDefExt::InitFileAttr(HWND hwndDlg)
{
    WCHAR wszBuf[MAX_PATH];

    TRACE("InitFileAttr %ls\n", m_wszPath);

    WIN32_FILE_ATTRIBUTE_DATA FileInfo;
    if (GetFileAttributesExW(m_wszPath, GetFileExInfoStandard, &FileInfo))
    {
        /* Update attribute checkboxes */
        if (FileInfo.dwFileAttributes & FILE_ATTRIBUTE_READONLY)
            SendDlgItemMessage(hwndDlg, 14021, BM_SETCHECK, BST_CHECKED, 0);
        if (FileInfo.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN)
            SendDlgItemMessage(hwndDlg, 14022, BM_SETCHECK, BST_CHECKED, 0);
        if (FileInfo.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE)
            SendDlgItemMessage(hwndDlg, 14023, BM_SETCHECK, BST_CHECKED, 0);

        /* Update creation time */
        if (GetFileTimeString(&FileInfo.ftCreationTime, wszBuf, _countof(wszBuf)))
            SetDlgItemTextW(hwndDlg, 14015, wszBuf);

        /* For files display last access and last write time */
        if (!m_bDir)
        {
            if (GetFileTimeString(&FileInfo.ftLastAccessTime, wszBuf, _countof(wszBuf)))
                SetDlgItemTextW(hwndDlg, 14019, wszBuf);

            if (GetFileTimeString(&FileInfo.ftLastWriteTime, wszBuf, _countof(wszBuf)))
                SetDlgItemTextW(hwndDlg, 14017, wszBuf);

            /* Update size of file */
            ULARGE_INTEGER FileSize;
            FileSize.u.LowPart = FileInfo.nFileSizeLow;
            FileSize.u.HighPart = FileInfo.nFileSizeHigh;
            if (SH_FormatFileSizeWithBytes(&FileSize, wszBuf, _countof(wszBuf)))
                SetDlgItemTextW(hwndDlg, 14011, wszBuf);
        }
    }

    if (m_bDir)
    {
        /* For directories files have to be counted */
        StringCchCopyW(wszBuf, _countof(wszBuf), m_wszPath);
        CountFolderAndFiles(wszBuf, _countof(wszBuf));

        /* Update size filed */
        if (SH_FormatFileSizeWithBytes(&m_DirSize, wszBuf, _countof(wszBuf)))
            SetDlgItemTextW(hwndDlg, 14011, wszBuf);

        /* Display files and folders count */
        WCHAR wszFormat[256];
        LoadStringW(shell32_hInstance, IDS_FILE_FOLDER, wszFormat, _countof(wszFormat));
        StringCchPrintfW(wszBuf, _countof(wszBuf), wszFormat, m_cFiles, m_cFolders);
        SetDlgItemTextW(hwndDlg, 14027, wszBuf);
    }

    /* Hide Advanced button. TODO: Implement advanced dialog and enable this button if filesystem supports compression or encryption */
    ShowWindow(GetDlgItem(hwndDlg, 14028), SW_HIDE);

    return TRUE;
}
BOOL AP_Win32Dialog_Columns::_onCommand(HWND hWnd, WPARAM wParam, LPARAM /*lParam*/)
{
	WORD wNotifyCode = HIWORD(wParam);
	WORD wId = LOWORD(wParam);
	wchar_t buf[BUFSIZE];
    UT_Win32LocaleString str;
    
	switch (wId)
	{
	case IDCANCEL:						// also AP_RID_DIALOG_COLUMN_BTN_CANCEL
		m_answer = a_CANCEL;
		// fall through

	case IDOK:							// also AP_RID_DIALOG_COLUMN_BTN_OK
		EndDialog(hWnd,0);
		return 1;

	case AP_RID_DIALOG_COLUMN_RADIO_ONE:
		setColumns(1);
		checkButton(AP_RID_DIALOG_COLUMN_RADIO_TWO, false);
		checkButton(AP_RID_DIALOG_COLUMN_RADIO_THREE, false);
		SetDlgItemTextW(m_hDlg, AP_RID_DIALOG_COLUMN_EDIT_NUMCOLUMNS, _itow(getColumns(),buf,10));
		return 1;

	case AP_RID_DIALOG_COLUMN_RADIO_TWO:
		setColumns(2);
		checkButton(AP_RID_DIALOG_COLUMN_RADIO_ONE, false);
		checkButton(AP_RID_DIALOG_COLUMN_RADIO_THREE, false);
		SetDlgItemTextW(m_hDlg, AP_RID_DIALOG_COLUMN_EDIT_NUMCOLUMNS, _itow(getColumns(),buf,10));
		return 1;

	case AP_RID_DIALOG_COLUMN_RADIO_THREE:
		setColumns(3);
		checkButton(AP_RID_DIALOG_COLUMN_RADIO_ONE, false);
		checkButton(AP_RID_DIALOG_COLUMN_RADIO_TWO, false);
		SetDlgItemTextW(m_hDlg, AP_RID_DIALOG_COLUMN_EDIT_NUMCOLUMNS, _itow(getColumns(),buf,10));
		return 1;

	case AP_RID_DIALOG_COLUMN_CHECK_LINE_BETWEEN:
		setLineBetween( isChecked(AP_RID_DIALOG_COLUMN_CHECK_LINE_BETWEEN)==BST_CHECKED );
		return 1;

	case AP_RID_DIALOG_COLUMN_EDIT_NUMCOLUMNS:
		if( wNotifyCode == EN_KILLFOCUS )
		{
			GetDlgItemTextW( hWnd, wId, buf, BUFSIZE );
			if( _wtoi( buf ) > 0 && _wtoi(buf) != (signed) getColumns() )
			{
				setColumns( _wtoi(buf) );
			}
			SetDlgItemTextW(m_hDlg, wId, _itow(getColumns(),buf,10));
			checkButton(AP_RID_DIALOG_COLUMN_RADIO_ONE, (getColumns()==1));
			checkButton(AP_RID_DIALOG_COLUMN_RADIO_TWO, (getColumns()==2));
			checkButton(AP_RID_DIALOG_COLUMN_RADIO_THREE, (getColumns()==3));
		}
		return 1;

	case AP_RID_DIALOG_COLUMN_EDIT_SPACEAFTER:
		if( wNotifyCode == EN_KILLFOCUS )
		{
			GetDlgItemTextW( hWnd, wId, buf, BUFSIZE );
			str.fromLocale (buf);
			setSpaceAfter( str.utf8_str().utf8_str() );
			str.fromUTF8 (getSpaceAfterString ());
			SetDlgItemTextW(m_hDlg, wId, str.c_str ());
		}
		return 1;

	case AP_RID_DIALOG_COLUMN_EDIT_MAXSIZE:
		if( wNotifyCode == EN_KILLFOCUS )
		{
			GetDlgItemTextW( hWnd, wId, buf, BUFSIZE );
            str.fromLocale (buf);
			setMaxHeight( str.utf8_str().utf8_str() );
            str.fromUTF8 (getHeightString());
            SetDlgItemTextW(m_hDlg, wId, str.c_str ());
		}
		return 1;

	case AP_RID_DIALOG_COLUMN_CHECK_RTL_ORDER:
		setColumnOrder( (UT_uint32) (isChecked(AP_RID_DIALOG_COLUMN_CHECK_RTL_ORDER) == BST_CHECKED) );
		return 1;

	default:							// we did not handle this notification
		UT_DEBUGMSG(("WM_Command for id %ld\n",wId));
		return 0;						// return zero to let windows take care of it.
	}
}
Exemplo n.º 16
0
static void initAudioDlg (HWND hDlg)
{
    WCHAR display_str[256], format_str[256], sysdefault_str[256], disabled_str[64];
    IMMDeviceEnumerator *devenum;
    BOOL have_driver = FALSE;
    HRESULT hr;

    WINE_TRACE("\n");

    LoadStringW(GetModuleHandle(NULL), IDS_AUDIO_DRIVER,
            format_str, sizeof(format_str) / sizeof(*format_str));
    LoadStringW(GetModuleHandle(NULL), IDS_AUDIO_DRIVER_NONE,
            disabled_str, sizeof(disabled_str) / sizeof(*disabled_str));
    LoadStringW(GetModuleHandle(NULL), IDS_AUDIO_SYSDEFAULT,
            sysdefault_str, sizeof(sysdefault_str) / sizeof(*sysdefault_str));

    hr = CoCreateInstance(&CLSID_MMDeviceEnumerator, NULL,
            CLSCTX_INPROC_SERVER, &IID_IMMDeviceEnumerator, (void**)&devenum);
    if(SUCCEEDED(hr)){
        PROPVARIANT pv;

        load_devices(devenum, eRender, &num_render_devs, &render_devs);
        load_devices(devenum, eCapture, &num_capture_devs, &capture_devs);

        PropVariantInit(&pv);
        if(get_driver_name(devenum, &pv) && pv.u.pwszVal[0] != '\0'){
            have_driver = TRUE;
            wnsprintfW(display_str, sizeof(display_str) / sizeof(*display_str),
                    format_str, pv.u.pwszVal);
            lstrcatW(g_drv_keyW, pv.u.pwszVal);
        }
        PropVariantClear(&pv);

        IMMDeviceEnumerator_Release(devenum);
    }

    SendDlgItemMessageW(hDlg, IDC_AUDIOOUT_DEVICE, CB_ADDSTRING,
            0, (LPARAM)sysdefault_str);
    SendDlgItemMessageW(hDlg, IDC_AUDIOOUT_DEVICE, CB_SETCURSEL, 0, 0);
    SendDlgItemMessageW(hDlg, IDC_VOICEOUT_DEVICE, CB_ADDSTRING,
            0, (LPARAM)sysdefault_str);
    SendDlgItemMessageW(hDlg, IDC_VOICEOUT_DEVICE, CB_SETCURSEL, 0, 0);

    SendDlgItemMessageW(hDlg, IDC_AUDIOIN_DEVICE, CB_ADDSTRING,
            0, (LPARAM)sysdefault_str);
    SendDlgItemMessageW(hDlg, IDC_AUDIOIN_DEVICE, CB_SETCURSEL, 0, 0);
    SendDlgItemMessageW(hDlg, IDC_VOICEIN_DEVICE, CB_ADDSTRING,
            0, (LPARAM)sysdefault_str);
    SendDlgItemMessageW(hDlg, IDC_VOICEIN_DEVICE, CB_SETCURSEL, 0, 0);

    if(have_driver){
        WCHAR *reg_out_dev, *reg_vout_dev, *reg_in_dev, *reg_vin_dev;
        UINT i;

        reg_out_dev = get_reg_keyW(HKEY_CURRENT_USER, g_drv_keyW, reg_out_nameW, NULL);
        reg_vout_dev = get_reg_keyW(HKEY_CURRENT_USER, g_drv_keyW, reg_vout_nameW, NULL);
        reg_in_dev = get_reg_keyW(HKEY_CURRENT_USER, g_drv_keyW, reg_in_nameW, NULL);
        reg_vin_dev = get_reg_keyW(HKEY_CURRENT_USER, g_drv_keyW, reg_vin_nameW, NULL);

        for(i = 0; i < num_render_devs; ++i){
            if(!render_devs[i].id)
                continue;

            SendDlgItemMessageW(hDlg, IDC_AUDIOOUT_DEVICE, CB_ADDSTRING,
                    0, (LPARAM)render_devs[i].name.u.pwszVal);
            SendDlgItemMessageW(hDlg, IDC_AUDIOOUT_DEVICE, CB_SETITEMDATA,
                    i + 1, (LPARAM)&render_devs[i]);
            if(reg_out_dev && !lstrcmpW(render_devs[i].id, reg_out_dev))
                SendDlgItemMessageW(hDlg, IDC_AUDIOOUT_DEVICE, CB_SETCURSEL, i + 1, 0);

            SendDlgItemMessageW(hDlg, IDC_VOICEOUT_DEVICE, CB_ADDSTRING,
                    0, (LPARAM)render_devs[i].name.u.pwszVal);
            SendDlgItemMessageW(hDlg, IDC_VOICEOUT_DEVICE, CB_SETITEMDATA,
                    i + 1, (LPARAM)&render_devs[i]);
            if(reg_vout_dev && !lstrcmpW(render_devs[i].id, reg_vout_dev))
                SendDlgItemMessageW(hDlg, IDC_VOICEOUT_DEVICE, CB_SETCURSEL, i + 1, 0);
        }

        for(i = 0; i < num_capture_devs; ++i){
            if(!capture_devs[i].id)
                continue;

            SendDlgItemMessageW(hDlg, IDC_AUDIOIN_DEVICE, CB_ADDSTRING,
                    0, (LPARAM)capture_devs[i].name.u.pwszVal);
            SendDlgItemMessageW(hDlg, IDC_AUDIOIN_DEVICE, CB_SETITEMDATA,
                    i + 1, (LPARAM)&capture_devs[i]);
            if(reg_in_dev && !lstrcmpW(capture_devs[i].id, reg_in_dev))
                SendDlgItemMessageW(hDlg, IDC_AUDIOIN_DEVICE, CB_SETCURSEL, i + 1, 0);

            SendDlgItemMessageW(hDlg, IDC_VOICEIN_DEVICE, CB_ADDSTRING,
                    0, (LPARAM)capture_devs[i].name.u.pwszVal);
            SendDlgItemMessageW(hDlg, IDC_VOICEIN_DEVICE, CB_SETITEMDATA,
                    i + 1, (LPARAM)&capture_devs[i]);
            if(reg_vin_dev && !lstrcmpW(capture_devs[i].id, reg_vin_dev))
                SendDlgItemMessageW(hDlg, IDC_VOICEIN_DEVICE, CB_SETCURSEL, i + 1, 0);
        }

        HeapFree(GetProcessHeap(), 0, reg_out_dev);
        HeapFree(GetProcessHeap(), 0, reg_vout_dev);
        HeapFree(GetProcessHeap(), 0, reg_in_dev);
        HeapFree(GetProcessHeap(), 0, reg_vin_dev);
    }else
        wnsprintfW(display_str, sizeof(display_str) / sizeof(*display_str),
                format_str, disabled_str);

    SetDlgItemTextW(hDlg, IDC_AUDIO_DRIVER, display_str);
}
BOOL AP_Win32Dialog_Columns::_onInitDialog(HWND hWnd, WPARAM /*wParam*/, LPARAM /*lParam*/)
{
	const XAP_StringSet* pSS = m_pApp->getStringSet();

	// Update the caption
	setDialogTitle(pSS->getValue(AP_STRING_ID_DLG_Column_ColumnTitle));

	/* Localise controls*/
	_DSX(COLUMN_BTN_OK,			DLG_OK);
	_DSX(COLUMN_BTN_CANCEL,			DLG_Cancel);
	_DS(COLUMN_GROUP1,			DLG_Column_Number);
	_DS(COLUMN_GROUP2,			DLG_Column_Preview);
	_DS(COLUMN_TEXT_ONE,			DLG_Column_One);
	_DS(COLUMN_TEXT_TWO,			DLG_Column_Two);
	_DS(COLUMN_TEXT_THREE,			DLG_Column_Three);
	_DS(COLUMN_CHECK_LINE_BETWEEN,		DLG_Column_Line_Between);
	_DS(COLUMN_TEXT_NUMCOLUMNS,		DLG_Column_Number_Cols);
	_DS(COLUMN_TEXT_SPACEAFTER,		DLG_Column_Space_After);
	_DS(COLUMN_TEXT_MAXSIZE,		DLG_Column_Size);
	_DS(COLUMN_CHECK_RTL_ORDER,		DLG_Column_RtlOrder);

	// Do Bitmaps
	RECT rect;
	GetClientRect(GetDlgItem(hWnd, AP_RID_DIALOG_COLUMN_RADIO_ONE), &rect);
	int iWidth = rect.right - rect.left;
	int iHeight = rect.bottom - rect.top;

	HBITMAP hBitmap;
	AP_Win32Toolbar_Icons Icons;
	COLORREF ColorRef = GetSysColor(COLOR_BTNFACE);
	UT_RGBColor Color(GetRValue(ColorRef), GetGValue(ColorRef), GetBValue(ColorRef));

	bool bFoundIcon = Icons.getBitmapForIcon(hWnd, iWidth, iHeight, &Color, "1COLUMN",
																&hBitmap);
	UT_return_val_if_fail (bFoundIcon, false);
	SendDlgItemMessageW(hWnd, AP_RID_DIALOG_COLUMN_RADIO_ONE, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBitmap);

	bFoundIcon = Icons.getBitmapForIcon(hWnd, iWidth, iHeight, &Color, "2COLUMN",
																&hBitmap);
	UT_return_val_if_fail (bFoundIcon, false);
	SendDlgItemMessageW(hWnd, AP_RID_DIALOG_COLUMN_RADIO_TWO, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBitmap);

	bFoundIcon = Icons.getBitmapForIcon(hWnd, iWidth, iHeight, &Color, "3COLUMN",
																&hBitmap);
	UT_return_val_if_fail (bFoundIcon, false);
	SendDlgItemMessageW(hWnd, AP_RID_DIALOG_COLUMN_RADIO_THREE, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBitmap);

	// set initial state
	wchar_t buf[BUFSIZE];
	checkButton(AP_RID_DIALOG_COLUMN_RADIO_ONE + getColumns() - 1, true);
	enableLineBetweenControl(getColumns() != 1);
	checkButton(AP_RID_DIALOG_COLUMN_CHECK_LINE_BETWEEN, getLineBetween());
	SetDlgItemTextW(m_hDlg, AP_RID_DIALOG_COLUMN_EDIT_NUMCOLUMNS, _itow( getColumns(),buf,10) );    
	setControlText(AP_RID_DIALOG_COLUMN_EDIT_SPACEAFTER, getSpaceAfterString());
	setControlText(AP_RID_DIALOG_COLUMN_EDIT_MAXSIZE, getHeightString());

	showControl( AP_RID_DIALOG_COLUMN_CHECK_RTL_ORDER, SW_NORMAL );
	checkButton(AP_RID_DIALOG_COLUMN_CHECK_RTL_ORDER, getColumnOrder()!=false);

	// Create a preview window.

	HWND hwndChild = GetDlgItem(hWnd, AP_RID_DIALOG_COLUMN_PREVIEW);

	m_pPreviewWidget = new XAP_Win32PreviewWidget(static_cast<XAP_Win32App *>(m_pApp),
													  hwndChild,
													  0);
	UT_uint32 w,h;
	m_pPreviewWidget->getWindowSize(&w,&h);
	//m_pPreviewWidget->init3dColors(m_wpreviewArea->style);
	m_pPreviewWidget->getGraphics()->init3dColors();
	_createPreviewFromGC(m_pPreviewWidget->getGraphics(), w, h);
	m_pPreviewWidget->setPreview(m_pColumnsPreview);
	
	centerDialog();	
	
	return 1;	// 1 == we did not call SetFocus()
}
Exemplo n.º 18
0
void QueryFilterDriver(HWND m_hWnd,ULONG ID,CMyList *m_list)
{
	DWORD dwReadByte;
	int i =0;
	int ItemNum = m_list->GetItemCount();


	SHFILEINFO shfileinfo;
	DriverImg.Create(16,16, ILC_COLOR32, 2, 100);
	HIMAGELIST hImageList = NULL;

	SetDlgItemTextW(m_hWnd,ID,L"正在扫描过滤驱动,请稍后...");

	if (KernelFilterDriver)
	{
		VirtualFree(KernelFilterDriver,(sizeof(KERNEL_FILTERDRIVER)+sizeof(KERNEL_FILTERDRIVER_INFO))*1025,MEM_RESERVE | MEM_COMMIT);
		KernelFilterDriver = 0;
	}
	KernelFilterDriver = (PKERNEL_FILTERDRIVER)VirtualAlloc(0,(sizeof(KERNEL_FILTERDRIVER)+sizeof(KERNEL_FILTERDRIVER_INFO))*1025,MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
	if (KernelFilterDriver)
	{
		memset(KernelFilterDriver,0,(sizeof(KERNEL_FILTERDRIVER)+sizeof(KERNEL_FILTERDRIVER_INFO))*1025);

		ReadFile((HANDLE)LIST_KERNEL_FILTER_DRIVER,KernelFilterDriver,(sizeof(KERNEL_FILTERDRIVER)+sizeof(KERNEL_FILTERDRIVER_INFO))*1025,&dwReadByte,0);

		for (i=0;i< KernelFilterDriver->ulCount;i++)
		{
			WCHAR lpwzTextOut[100];
			memset(lpwzTextOut,0,sizeof(lpwzTextOut));
			wsprintfW(lpwzTextOut,L"共有 %d 个数据,正在扫描第 %d 个,请稍后...",KernelFilterDriver->ulCount,i);
			SetDlgItemTextW(m_hWnd,ID,lpwzTextOut);

			WCHAR lpwzObjType[256];
			WCHAR lpwzAttachDevice[256];
			WCHAR lpwzFileName[256];
			WCHAR lpwzFilePath[256];
			//宿主
			WCHAR lpwzHostFileName[256];

			memset(lpwzObjType,0,sizeof(lpwzObjType));
			memset(lpwzAttachDevice,0,sizeof(lpwzAttachDevice));
			memset(lpwzFileName,0,sizeof(lpwzFileName));
			memset(lpwzFilePath,0,sizeof(lpwzFilePath));
			memset(lpwzHostFileName,0,sizeof(lpwzHostFileName));

			if (wcsstr(KernelFilterDriver->KernelFilterDriverInfo[i].HostFileName,L"\\FileSystem\\") != NULL)
			{
				wcscat(lpwzObjType,L"File");
			}
			if (wcsstr(KernelFilterDriver->KernelFilterDriverInfo[i].HostFileName,L"\\Driver\\") != NULL)
			{
				wcsncat(lpwzObjType,KernelFilterDriver->KernelFilterDriverInfo[i].HostFileName+wcslen(L"\\Driver\\"),wcslen(KernelFilterDriver->KernelFilterDriverInfo[i].HostFileName)-wcslen(L"\\Driver\\"));
			}
			wsprintfW(lpwzAttachDevice,L"0x%X",KernelFilterDriver->KernelFilterDriverInfo[i].ulAttachDevice);
			wsprintfW(lpwzFileName,L"%ws",KernelFilterDriver->KernelFilterDriverInfo[i].FileName);
			wsprintfW(lpwzFilePath,L"%ws",KernelFilterDriver->KernelFilterDriverInfo[i].FilePath);
			wsprintfW(lpwzHostFileName,L"%ws",KernelFilterDriver->KernelFilterDriverInfo[i].HostFileName);

			WCHAR lpwzDosFullPath[256];
			WCHAR lpwzWinDir[256];
			WCHAR lpwzSysDisk[256];

			memset(lpwzWinDir,0,sizeof(lpwzWinDir));
			memset(lpwzSysDisk,0,sizeof(lpwzSysDisk));
			memset(lpwzDosFullPath,0,sizeof(lpwzDosFullPath));

			GetWindowsDirectoryW(lpwzWinDir,sizeof(lpwzWinDir));
			memcpy(lpwzSysDisk,lpwzWinDir,4);

			if (wcsstr(lpwzFilePath,L"\\??\\"))
			{
				//开始这种路径的处理
				memset(lpwzDosFullPath,0,sizeof(lpwzDosFullPath));
				wcsncpy(lpwzDosFullPath,lpwzFilePath+wcslen(L"\\??\\"),wcslen(lpwzFilePath)-wcslen(L"\\??\\"));
				goto Next;
			}
			if (wcsstr(lpwzFilePath,L"\\WINDOWS\\system32\\"))
			{
				memset(lpwzDosFullPath,0,sizeof(lpwzDosFullPath));
				wcscat(lpwzDosFullPath,lpwzSysDisk);
				wcscat(lpwzDosFullPath,lpwzFilePath);
				//MessageBoxW(lpwzDosFullPath,lpwzFullSysName,0);
				goto Next;
			}
			if (wcsstr(lpwzFilePath,L"\\SystemRoot\\"))
			{
				WCHAR lpwzTemp[256];
				memset(lpwzTemp,0,sizeof(lpwzTemp));
				memset(lpwzDosFullPath,0,sizeof(lpwzDosFullPath));
				wcscat(lpwzTemp,lpwzSysDisk);
				wcscat(lpwzTemp,L"\\WINDOWS\\");
				wcscat(lpwzDosFullPath,lpwzTemp);
				wcsncpy(lpwzDosFullPath+wcslen(lpwzTemp),lpwzFilePath+wcslen(L"\\SystemRoot\\"),wcslen(lpwzFilePath) - wcslen(L"\\SystemRoot\\"));
				goto Next;
			}
			//if (wcslen(lpwzHookModuleImage) == wcslen(lpwzHookModuleImage))
			//{
			memset(lpwzDosFullPath,0,sizeof(lpwzDosFullPath));
			wcscat(lpwzDosFullPath,lpwzSysDisk);
			wcscat(lpwzDosFullPath,L"\\WINDOWS\\system32\\drivers\\");
			wcscat(lpwzDosFullPath,lpwzFilePath);
			goto Next;
			//}
Next:
			m_list->InsertItem(i,lpwzObjType,RGB(77,77,77));
			m_list->SetItemText(i,1,lpwzFileName);
			m_list->SetItemText(i,2,lpwzAttachDevice);
			m_list->SetItemText(i,3,lpwzHostFileName);
			m_list->SetItemText(i,4,lpwzDosFullPath);

			hImageList=(HIMAGELIST)::SHGetFileInfo(lpwzDosFullPath,0,&shfileinfo,sizeof(shfileinfo),SHGFI_ICON);
			DriverImg.Add(shfileinfo.hIcon);
			m_list->SetImageList(&DriverImg);
			m_list->SetItemImageId(i,i);
			DestroyIcon(shfileinfo.hIcon);
		}
	}else{
		WCHAR lpwzTextOut[100];
		memset(lpwzTextOut,0,sizeof(lpwzTextOut));
		wsprintfW(lpwzTextOut,L"申请内存错误, 请重新运行A盾\r\n错误代码:%d\n",GetLastError());
		MessageBox(0,lpwzTextOut,0,0);
	}
	WCHAR lpwzTextOut[100];
	memset(lpwzTextOut,0,sizeof(lpwzTextOut));
	wsprintfW(lpwzTextOut,L"过滤驱动扫描完毕,共有 %d 个数据",i);
	SetDlgItemTextW(m_hWnd,ID,lpwzTextOut);

}
Exemplo n.º 19
0
static BOOL Login_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
	wchar_t 		szBuffer[256], szTemp[128];

	g_hLoginDialog = hwnd;
	DisableInput(true);
	GetPNotesMessage(L"invalid_pwrd", L"Incorrect password", m_InvalidPassword);
	GetPNotesMessage(L"invalid_old_pwrd", L"Incorrect old password", m_InvalidOldPassword);
	GetPNotesMessage(L"both_pwrd", L"Both password strings should be identical. Please, check the spelling.", m_BothPasswords);
	switch(m_DlgId){
		case DLG_LOGIN_MAIN:{
			GetPrivateProfileStringW(S_LOGIN_CAPTIONS, IK_ENTER_PWRD, L"Enter password", szBuffer, 256, g_NotePaths.CurrLanguagePath);
			SetDlgItemTextW(hwnd, IDC_ST_PWRD_MAIN, szBuffer);
			GetPrivateProfileStringW(L"captions", L"enter_pwrd", L"Enter Password", szBuffer, 256, g_NotePaths.CurrLanguagePath);
			if(m_LoginType == LDT_NOTE){
				PMEMNOTE		pNote = (PMEMNOTE)m_pParam;

				GetPrivateProfileStringW(L"captions", L"note", L"note", szTemp, 128, g_NotePaths.CurrLanguagePath);
				wcscat(szBuffer, L" [");
				wcscat(szBuffer, szTemp);
				wcscat(szBuffer, L" '");
				wcscat(szBuffer, pNote->pData->szName);
				wcscat(szBuffer, L"']");
			}
			else if(m_LoginType == LDT_GROUP){
				LPPNGROUP		pGroup = (LPPNGROUP)m_pParam;

				GetPrivateProfileStringW(L"captions", L"group", L"group", szTemp, 128, g_NotePaths.CurrLanguagePath);
				wcscat(szBuffer, L" [");
				wcscat(szBuffer, szTemp);
				wcscat(szBuffer, L" '");
				wcscat(szBuffer, pGroup->szName);
				wcscat(szBuffer, L"']");
			}
			else if(m_LoginType == LDT_DIARY){
				GetPrivateProfileStringW(L"captions", L"group", L"group", szTemp, 128, g_NotePaths.CurrLanguagePath);
				wcscat(szBuffer, L" [");
				wcscat(szBuffer, szTemp);
				wcscat(szBuffer, L" '");
				GetPrivateProfileStringW(L"left_panel", L"209", L"Diary", szTemp, 128, g_NotePaths.CurrLanguagePath);
				wcscat(szBuffer, szTemp);
				wcscat(szBuffer, L"']");
			}
			break;
		}
		case DLG_LOGIN_CREATE:
			GetPrivateProfileStringW(S_LOGIN_CAPTIONS, IK_ENTER_PWRD, L"Enter password", szBuffer, 256, g_NotePaths.CurrLanguagePath);
			SetDlgItemTextW(hwnd, IDC_ST_PWRD_MAIN, szBuffer);
			GetPrivateProfileStringW(S_LOGIN_CAPTIONS, IK_CONF_PWRD, L"Confirm password", szBuffer, 256, g_NotePaths.CurrLanguagePath);
			SetDlgItemTextW(hwnd, IDC_ST_PWRD_SECOND, szBuffer);
			GetPrivateProfileStringW(L"captions", L"create_pwrd", L"Password Setting", szBuffer, 256, g_NotePaths.CurrLanguagePath);
			if(m_LoginType == LDT_NOTE){
				PMEMNOTE		pNote = (PMEMNOTE)m_pParam;

				GetPrivateProfileStringW(L"captions", L"note", L"note", szTemp, 128, g_NotePaths.CurrLanguagePath);
				wcscat(szBuffer, L" [");
				wcscat(szBuffer, szTemp);
				wcscat(szBuffer, L" '");
				wcscat(szBuffer, pNote->pData->szName);
				wcscat(szBuffer, L"']");
			}
			else if(m_LoginType == LDT_GROUP){
				LPPNGROUP		pGroup = (LPPNGROUP)m_pParam;

				GetPrivateProfileStringW(L"captions", L"group", L"group", szTemp, 128, g_NotePaths.CurrLanguagePath);
				wcscat(szBuffer, L" [");
				wcscat(szBuffer, szTemp);
				wcscat(szBuffer, L" '");
				wcscat(szBuffer, pGroup->szName);
				wcscat(szBuffer, L"']");
			}
			else if(m_LoginType == LDT_DIARY){
				GetPrivateProfileStringW(L"captions", L"group", L"group", szTemp, 128, g_NotePaths.CurrLanguagePath);
				wcscat(szBuffer, L" [");
				wcscat(szBuffer, szTemp);
				wcscat(szBuffer, L" '");
				GetPrivateProfileStringW(L"left_panel", L"209", L"Diary", szTemp, 128, g_NotePaths.CurrLanguagePath);
				wcscat(szBuffer, szTemp);
				wcscat(szBuffer, L"']");
			}
			break;
		case DLG_LOGIN_CHANGE:
			GetPrivateProfileStringW(S_LOGIN_CAPTIONS, IK_OLD_PWRD, L"Old password", szBuffer, 256, g_NotePaths.CurrLanguagePath);
			SetDlgItemTextW(hwnd, IDC_ST_PWRD_MAIN, szBuffer);
			GetPrivateProfileStringW(S_LOGIN_CAPTIONS, IK_NEW_PWRD, L"New password", szBuffer, 256, g_NotePaths.CurrLanguagePath);
			SetDlgItemTextW(hwnd, IDC_ST_PWRD_NEW, szBuffer);
			GetPrivateProfileStringW(S_LOGIN_CAPTIONS, IK_CONF_PWRD, L"Confirm password", szBuffer, 256, g_NotePaths.CurrLanguagePath);
			SetDlgItemTextW(hwnd, IDC_ST_PWRD_SECOND, szBuffer);
			GetPrivateProfileStringW(L"captions", L"change_pwrd", L"Password Changing", szBuffer, 256, g_NotePaths.CurrLanguagePath);
			break;
		default:
			break;
	}
	SetWindowTextW(hwnd, szBuffer);
	SetDlgCtlText(hwnd, IDOK, g_NotePaths.CurrLanguagePath, DS_OK);
	SetDlgCtlText(hwnd, IDCANCEL, g_NotePaths.CurrLanguagePath, DS_CANCEL);
	// SetForegroundWindow(hwnd);
	SetFocus(GetDlgItem(hwnd, IDC_EDT_PWRD_MAIN));
	return FALSE;
}
Exemplo n.º 20
0
VOID
DisplayEvent(HWND hDlg)
{
    WCHAR szEventType[MAX_PATH];
    WCHAR szTime[MAX_PATH];
    WCHAR szDate[MAX_PATH];
    WCHAR szUser[MAX_PATH];
    WCHAR szComputer[MAX_PATH];
    WCHAR szSource[MAX_PATH];
    WCHAR szCategory[MAX_PATH];
    WCHAR szEventID[MAX_PATH];
    WCHAR szEventText[EVENT_MESSAGE_EVENTTEXT_BUFFER];
    WCHAR szEventData[MAX_PATH];
    BOOL bEventData = FALSE;
    LVITEMW li;
    EVENTLOGRECORD* pevlr;
    int iIndex;

    // Get index of selected item
    iIndex = (int)SendMessage (hwndListView, LVM_GETNEXTITEM, -1, LVNI_SELECTED | LVNI_FOCUSED);

    li.mask = LVIF_PARAM;
    li.iItem = iIndex;
    li.iSubItem = 0;

    (void)ListView_GetItem(hwndListView, &li);

    pevlr = (EVENTLOGRECORD*)li.lParam;

    if (iIndex != -1)
    {
        ListView_GetItemText(hwndListView, iIndex, 0, szEventType, sizeof(szEventType) / sizeof(WCHAR));
        ListView_GetItemText(hwndListView, iIndex, 1, szDate, sizeof(szDate) / sizeof(WCHAR));
        ListView_GetItemText(hwndListView, iIndex, 2, szTime, sizeof(szTime) / sizeof(WCHAR));
        ListView_GetItemText(hwndListView, iIndex, 3, szSource, sizeof(szSource) / sizeof(WCHAR));
        ListView_GetItemText(hwndListView, iIndex, 4, szCategory, sizeof(szCategory) / sizeof(WCHAR));
        ListView_GetItemText(hwndListView, iIndex, 5, szEventID, sizeof(szEventID) / sizeof(WCHAR));
        ListView_GetItemText(hwndListView, iIndex, 6, szUser, sizeof(szUser) / sizeof(WCHAR));
        ListView_GetItemText(hwndListView, iIndex, 7, szComputer, sizeof(szComputer) / sizeof(WCHAR));

        bEventData = !(pevlr->DataLength == 0);

        if (pevlr->DataLength > 0)
        {
            MultiByteToWideChar(CP_ACP,
                                0,
                                (LPCSTR)((LPBYTE)pevlr + pevlr->DataOffset),
                                pevlr->DataLength,
                                szEventData,
                                MAX_PATH);
        }

        GetEventMessage(lpSourceLogName, szSource, pevlr, szEventText);

        EnableWindow(GetDlgItem(hDlg, IDC_BYTESRADIO), bEventData);
        EnableWindow(GetDlgItem(hDlg, IDC_WORDRADIO), bEventData);

        SetDlgItemTextW(hDlg, IDC_EVENTDATESTATIC, szDate);
        SetDlgItemTextW(hDlg, IDC_EVENTTIMESTATIC, szTime);

        SetDlgItemTextW(hDlg, IDC_EVENTUSERSTATIC, szUser);
        SetDlgItemTextW(hDlg, IDC_EVENTSOURCESTATIC, szSource);
        SetDlgItemTextW(hDlg, IDC_EVENTCOMPUTERSTATIC, szComputer);
        SetDlgItemTextW(hDlg, IDC_EVENTCATEGORYSTATIC, szCategory);
        SetDlgItemTextW(hDlg, IDC_EVENTIDSTATIC, szEventID);
        SetDlgItemTextW(hDlg, IDC_EVENTTYPESTATIC, szEventType);
        SetDlgItemTextW(hDlg, IDC_EVENTTEXTEDIT, szEventText);
        SetDlgItemTextW(hDlg, IDC_EVENTDATAEDIT, szEventData);
    }
    else
    {
        MessageBoxW(NULL,
                   L"No Items in ListView",
                   L"Error",
                   MB_OK | MB_ICONINFORMATION);
    }
}
Exemplo n.º 21
0
VOID
CDrvDefExt::InitGeneralPage(HWND hwndDlg)
{
    WCHAR wszVolumeName[MAX_PATH+1] = {0};
    WCHAR wszFileSystem[MAX_PATH+1] = {0};
    WCHAR wszBuf[128];
    BOOL bRet;

    bRet = GetVolumeInformationW(m_wszDrive, wszVolumeName, _countof(wszVolumeName), NULL, NULL, NULL, wszFileSystem, _countof(wszFileSystem));
    if (bRet)
    {
        /* Set volume label and filesystem */
        SetDlgItemTextW(hwndDlg, 14000, wszVolumeName);
        SetDlgItemTextW(hwndDlg, 14002, wszFileSystem);
    }

    /* Set drive type and icon */
    UINT DriveType = GetDriveTypeW(m_wszDrive);
    UINT IconId, TypeStrId = 0;
    switch (DriveType)
    {
        case DRIVE_CDROM: IconId = IDI_SHELL_CDROM; TypeStrId = IDS_DRIVE_CDROM; break;
        case DRIVE_REMOVABLE: IconId = IDI_SHELL_FLOPPY; break;
        case DRIVE_RAMDISK: IconId = IDI_SHELL_RAMDISK; break;
        default: IconId = IDI_SHELL_DRIVE; TypeStrId = IDS_DRIVE_FIXED;
    }
    HICON hIcon = (HICON)LoadImage(shell32_hInstance, MAKEINTRESOURCE(IconId), IMAGE_ICON, 32, 32, LR_SHARED);
    if (hIcon)
        SendDlgItemMessageW(hwndDlg, 14016, STM_SETICON, (WPARAM)hIcon, 0);
    if (TypeStrId && LoadStringW(shell32_hInstance, TypeStrId, wszBuf, _countof(wszBuf)))
        SetDlgItemTextW(hwndDlg, 14001, wszBuf);

    ULARGE_INTEGER FreeBytesAvailable, TotalNumberOfBytes;
    if(GetDiskFreeSpaceExW(m_wszDrive, &FreeBytesAvailable, &TotalNumberOfBytes, NULL))
    {
        /* Init free space percentage used for drawing piechart */
        m_FreeSpacePerc = (UINT)(FreeBytesAvailable.QuadPart * 100ull / TotalNumberOfBytes.QuadPart);

        /* Used space */
        if (SH_FormatByteSize(TotalNumberOfBytes.QuadPart - FreeBytesAvailable.QuadPart, wszBuf, _countof(wszBuf)))
            SetDlgItemTextW(hwndDlg, 14003, wszBuf);

        if (StrFormatByteSizeW(TotalNumberOfBytes.QuadPart - FreeBytesAvailable.QuadPart, wszBuf, _countof(wszBuf)))
            SetDlgItemTextW(hwndDlg, 14004, wszBuf);

        /* Free space */
        if (SH_FormatByteSize(FreeBytesAvailable.QuadPart, wszBuf, _countof(wszBuf)))
            SetDlgItemTextW(hwndDlg, 14005, wszBuf);

        if (StrFormatByteSizeW(FreeBytesAvailable.QuadPart, wszBuf, _countof(wszBuf)))
            SetDlgItemTextW(hwndDlg, 14006, wszBuf);

        /* Total space */
        if (SH_FormatByteSize(TotalNumberOfBytes.QuadPart, wszBuf, _countof(wszBuf)))
            SetDlgItemTextW(hwndDlg, 14007, wszBuf);

        if (StrFormatByteSizeW(TotalNumberOfBytes.QuadPart, wszBuf, _countof(wszBuf)))
            SetDlgItemTextW(hwndDlg, 14008, wszBuf);
    }

    /* Set drive description */
    WCHAR wszFormat[50];
    GetDlgItemTextW(hwndDlg, 14009, wszFormat, _countof(wszFormat));
    swprintf(wszBuf, wszFormat, m_wszDrive[0]);
    SetDlgItemTextW(hwndDlg, 14009, wszBuf);
}
Exemplo n.º 22
0
// Setup instructions control
void SetupInstructions(
    HINSTANCE hInstance,
    HWND hDlg, 
    int ctrlID, 
    int textID
)
{
    WCHAR msg[10240];  // lplp
    HWND hWndTmp;
    SCROLLINFO scrollInfo;
    WNDPROC wpOrigEditProc;

    hWndTmp = GetDlgItem(hDlg, ctrlID);
    if (hWndTmp == NULL)
        {
        return;
        }

    // Assume scrollbar needed; it that way when the text is set and the 
    // scrollbar's details read, they should be correct, bearing in mind the 
    // scrollbar will take up space that would otherwise be used for text
    SDUSetWndStyle(hWndTmp, TRUE, WS_VSCROLL);

    SDUSetWndStyle(hWndTmp, TRUE, ES_MULTILINE);
    SDUSetWndStyle(hWndTmp, TRUE, ES_AUTOVSCROLL);
    SDUSetWndStyle(hWndTmp, TRUE, ES_WANTRETURN);

    // Set the dialog to the string passed in, translating as needed
    SetDlgItemString(
                     G_hInstance,
                     hDlg,
                     ctrlID,
                     textID
                    );

    // Retrieve instructions text, and replace 0x10 chars with 0x10, 
    // 0x13 - required by EDIT (TEXTEDIT) controls
    GetDlgItemTextW(
        hDlg,
        ctrlID,
        msg,
        (sizeof(msg) / sizeof(*msg))
        );
    SDUStringReplaceW(msg, TEXT("\n"), TEXT("\r\n"));
    SetDlgItemTextW(
        hDlg,
        ctrlID,
        msg
        );

    
/*
    SDUSetWndStyle(hWndTmp, TRUE, WS_EX_STATICEDGE);

    //SDUSetWndStyle(hWndTmp, TRUE, WS_VSCROLL);
    scrollInfo.cbSize = sizeof(scrollInfo);
    scrollInfo.fMask = 0; // i.e. DO NOT SET SIF_DISABLENOSCROLL
    scrollInfo.fMask = SIF_DISABLENOSCROLL;
    SetScrollInfo(hWndTmp, SB_VERT, &scrollInfo, TRUE);
*/

    SizeControlMaxWidthBorder(
                              hDlg,
                              ctrlID,
                              FREEOTFE_DLG_BORDER
                             );
    SizeControlMaxDepth(hDlg, ctrlID);

    // Get all the vertial scroll bar information
    memset(&scrollInfo, 0, sizeof(scrollInfo));
    scrollInfo.cbSize = sizeof(scrollInfo);
    scrollInfo.fMask  = SIF_ALL;
    GetScrollInfo(hWndTmp, SB_VERT, &scrollInfo);
    // Save the position for comparison later on
    SizeControlMaxDepth(hDlg, ctrlID);
    SDUSetWndStyle(hWndTmp, (((UINT)scrollInfo.nMax) >= scrollInfo.nPage), WS_VSCROLL);

    // In case the scrollbar was turned on/off, 
    SetWindowPos(
                 hWndTmp, 
                 NULL, 
                 0, 
                 0, 
                 0, 
                 0, 
                 (
                  SWP_DRAWFRAME | 
                  SWP_FRAMECHANGED | 
                  SWP_NOZORDER | 
                  SWP_NOMOVE | 
                  SWP_NOSIZE
                 )
                );

    // Make readonly by intercepting WM_CHAR
    // Don't set the *control* to be readonly, as that results in wrong colour
    // background
    wpOrigEditProc = (WNDPROC)GetWindowLong(hWndTmp, GWL_WNDPROC);
    if (wpOrigEditProc != ReadonlyEditControlProc)
        {
        (WNDPROC)SetWindowLong(hWndTmp, GWL_WNDPROC, (LONG)ReadonlyEditControlProc);
        SetWindowLong(hWndTmp, GWL_USERDATA, (LONG)wpOrigEditProc);
        //lplp - SetWindowLong is WINDOWS MOBILE 5 AND LATER ONLY - NOT WM2003?
        }

}
Exemplo n.º 23
0
void QueryDpcTimer(HWND m_hWnd,ULONG ID,CMyList *m_list)
{
	DWORD dwReadByte;
	int i=0;
	int ItemNum = m_list->GetItemCount();

	SHFILEINFO shfileinfo;
	DpcTimerImg.Create(16,16, ILC_COLOR32, 2, 80);
	HIMAGELIST hImageList = NULL;

	SetDlgItemTextW(m_hWnd,ID,L"正在扫描DpcTimer,请稍后...");

	if (DpcTimer)
	{
		VirtualFree(DpcTimer,sizeof(MyDpcTimer)*MAX_DPCTIMER_COUNT*2,MEM_RESERVE | MEM_COMMIT);
		DpcTimer = 0;
	}
	DpcTimer = (PMyDpcTimer)VirtualAlloc(0,sizeof(MyDpcTimer)*MAX_DPCTIMER_COUNT*2,MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
	if (DpcTimer)
	{
		memset(DpcTimer,0,sizeof(MyDpcTimer)*MAX_DPCTIMER_COUNT*2);

		ReadFile((HANDLE)LIST_DPC_TIMER,DpcTimer,sizeof(MyDpcTimer)*MAX_DPCTIMER_COUNT*2,&dwReadByte,0);

		for (i=0;i< (int)DpcTimer->ulCount;i++)
		{
			WCHAR lpwzTextOut[100];
			memset(lpwzTextOut,0,sizeof(lpwzTextOut));
			wsprintfW(lpwzTextOut,L"共有 %d 个数据,正在扫描第 %d 个,请稍后...",DpcTimer->ulCount,i);
			SetDlgItemTextW(m_hWnd,ID,lpwzTextOut);

			WCHAR lpwzKTimer[256] = {0};
			WCHAR lpwzKDpc[256] = {0};
			WCHAR lpwzPeriod[256] = {0};
			WCHAR lpwzDpcRoutineAddress[256] = {0};
			WCHAR lpwzFullSysName[256] = {0};

			memset(lpwzKTimer,0,sizeof(lpwzKTimer));
			memset(lpwzKDpc,0,sizeof(lpwzKDpc));
			memset(lpwzPeriod,0,sizeof(lpwzPeriod));
			memset(lpwzDpcRoutineAddress,0,sizeof(lpwzDpcRoutineAddress));
			memset(lpwzFullSysName,0,sizeof(lpwzFullSysName));

			MultiByteToWideChar(
				CP_ACP,
				0, 
				DpcTimer->MyTimer[i].lpszModule,
				-1, 
				lpwzFullSysName, 
				strlen(DpcTimer->MyTimer[i].lpszModule)
				);
//********************************************************************
			WCHAR lpwzDosFullPath[256];
			WCHAR lpwzWinDir[256];
			WCHAR lpwzSysDisk[256];

			memset(lpwzWinDir,0,sizeof(lpwzWinDir));
			memset(lpwzSysDisk,0,sizeof(lpwzSysDisk));
			memset(lpwzDosFullPath,0,sizeof(lpwzDosFullPath));

			GetWindowsDirectoryW(lpwzWinDir,sizeof(lpwzWinDir));
			memcpy(lpwzSysDisk,lpwzWinDir,4);

			if (wcsstr(lpwzFullSysName,L"\\??\\"))
			{
				//开始这种路径的处理
				memset(lpwzDosFullPath,0,sizeof(lpwzDosFullPath));
				wcsncpy(lpwzDosFullPath,lpwzFullSysName+wcslen(L"\\??\\"),wcslen(lpwzFullSysName)-wcslen(L"\\??\\"));
				goto Next;
			}
			if (wcsstr(lpwzFullSysName,L"\\WINDOWS\\system32\\"))
			{
				memset(lpwzDosFullPath,0,sizeof(lpwzDosFullPath));
				wcscat(lpwzDosFullPath,lpwzSysDisk);
				wcscat(lpwzDosFullPath,lpwzFullSysName);
				//MessageBoxW(lpwzDosFullPath,lpwzFullSysName,0);
				goto Next;
			}
			if (wcsstr(lpwzFullSysName,L"\\SystemRoot\\"))
			{
				WCHAR lpwzTemp[256];
				memset(lpwzTemp,0,sizeof(lpwzTemp));
				memset(lpwzDosFullPath,0,sizeof(lpwzDosFullPath));
				wcscat(lpwzTemp,lpwzSysDisk);
				wcscat(lpwzTemp,L"\\WINDOWS\\");
				wcscat(lpwzDosFullPath,lpwzTemp);
				wcsncpy(lpwzDosFullPath+wcslen(lpwzTemp),lpwzFullSysName+wcslen(L"\\SystemRoot\\"),wcslen(lpwzFullSysName) - wcslen(L"\\SystemRoot\\"));
				goto Next;
			}
			if (!wcsstr(lpwzFullSysName,L"\\"))
			{
				memset(lpwzDosFullPath,0,sizeof(lpwzDosFullPath));
				wcscat(lpwzDosFullPath,lpwzSysDisk);
				wcscat(lpwzDosFullPath,L"\\WINDOWS\\system32\\drivers\\");
				wcscat(lpwzDosFullPath,lpwzFullSysName);
				goto Next;
			}
Next:

//********************************************************************
			wsprintfW(lpwzKTimer,L"0x%08X",DpcTimer->MyTimer[i].TimerAddress);
			wsprintfW(lpwzKDpc,L"0x%08X",DpcTimer->MyTimer[i].DpcAddress);
			wsprintfW(lpwzPeriod,L"%d",DpcTimer->MyTimer[i].Period);
			wsprintfW(lpwzDpcRoutineAddress,L"0x%08X",DpcTimer->MyTimer[i].DpcRoutineAddress);

			if (_wcsnicmp(lpwzDosFullPath,L"Unknown",wcslen(lpwzDosFullPath)) == 0)
			{
				m_list->InsertItem(i,lpwzKTimer,RGB(255,20,147));
			}else
			{
				m_list->InsertItem(i,lpwzKTimer,RGB(77,77,77));
			}
			m_list->SetItemText(i,1,lpwzKDpc);
			m_list->SetItemText(i,2,lpwzPeriod);
			m_list->SetItemText(i,3,lpwzDpcRoutineAddress);
			m_list->SetItemText(i,4,lpwzDosFullPath);


			hImageList=(HIMAGELIST)::SHGetFileInfo(lpwzDosFullPath,0,&shfileinfo,sizeof(shfileinfo),SHGFI_ICON);
			DpcTimerImg.Add(shfileinfo.hIcon);
			m_list->SetImageList(&DpcTimerImg);
			m_list->SetItemImageId(i,i);
			DestroyIcon(shfileinfo.hIcon);
		}
	}else{
		WCHAR lpwzTextOut[100];
		memset(lpwzTextOut,0,sizeof(lpwzTextOut));
		wsprintfW(lpwzTextOut,L"申请内存错误, 请重新运行A盾\r\n错误代码:%d\n",GetLastError());
		MessageBox(0,lpwzTextOut,0,0);
	}
	WCHAR lpwzTextOut[100];
	memset(lpwzTextOut,0,sizeof(lpwzTextOut));
	wsprintfW(lpwzTextOut,L"DpcTimer扫描完毕,共有 %d 个数据",i);
	SetDlgItemTextW(m_hWnd,ID,lpwzTextOut);
}
Exemplo n.º 24
0
INT CALLBACK
dloginfoproc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	char buf[256];
	pdf_xref *xref = gapp.xref;
	fz_obj *info, *obj;

	switch(message)
	{
	case WM_INITDIALOG:

		SetDlgItemTextW(hwnd, 0x10, wbuf);

		if (!xref)
		{
			SetDlgItemTextA(hwnd, 0x11, "XPS");
			SetDlgItemTextA(hwnd, 0x12, "None");
			SetDlgItemTextA(hwnd, 0x13, "n/a");
			return TRUE;
		}

		sprintf(buf, "PDF %d.%d", xref->version / 10, xref->version % 10);
		SetDlgItemTextA(hwnd, 0x11, buf);

		if (xref->crypt)
		{
			sprintf(buf, "Standard V%d %d-bit %s", pdf_get_crypt_revision(xref),
				pdf_get_crypt_length(xref), pdf_get_crypt_method(xref));
			SetDlgItemTextA(hwnd, 0x12, buf);
			strcpy(buf, "");
			if (pdf_has_permission(xref, PDF_PERM_PRINT))
				strcat(buf, "print, ");
			if (pdf_has_permission(xref, PDF_PERM_CHANGE))
				strcat(buf, "modify, ");
			if (pdf_has_permission(xref, PDF_PERM_COPY))
				strcat(buf, "copy, ");
			if (pdf_has_permission(xref, PDF_PERM_NOTES))
				strcat(buf, "annotate, ");
			if (strlen(buf) > 2)
				buf[strlen(buf)-2] = 0;
			else
				strcpy(buf, "none");
			SetDlgItemTextA(hwnd, 0x13, buf);
		}
		else
		{
			SetDlgItemTextA(hwnd, 0x12, "None");
			SetDlgItemTextA(hwnd, 0x13, "n/a");
		}

		info = fz_dict_gets(xref->trailer, "Info");
		if (!info)
			return TRUE;

#define SETUCS(ID) \
		{ \
			unsigned short *ucs; \
			ucs = pdf_to_ucs2(obj); \
			SetDlgItemTextW(hwnd, ID, ucs); \
			fz_free(ucs); \
		}

		if ((obj = fz_dict_gets(info, "Title")))
			SETUCS(0x20);
		if ((obj = fz_dict_gets(info, "Author")))
			SETUCS(0x21);
		if ((obj = fz_dict_gets(info, "Subject")))
			SETUCS(0x22);
		if ((obj = fz_dict_gets(info, "Keywords")))
			SETUCS(0x23);
		if ((obj = fz_dict_gets(info, "Creator")))
			SETUCS(0x24);
		if ((obj = fz_dict_gets(info, "Producer")))
			SETUCS(0x25);
		if ((obj = fz_dict_gets(info, "CreationDate")))
			SETUCS(0x26);
		if ((obj = fz_dict_gets(info, "ModDate")))
			SETUCS(0x27);
		return TRUE;

	case WM_COMMAND:
		EndDialog(hwnd, 1);
		return TRUE;
	}
	return FALSE;
}
Exemplo n.º 25
0
BOOL plExportDlgImp::DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch (msg)
    {
    case WM_INITDIALOG:
        IInitDlg(hDlg);
        return TRUE;

    case WM_COMMAND:
        {
            int cmd = HIWORD(wParam);
            int resID = LOWORD(wParam);

            if (cmd == BN_CLICKED)
            {
                if (resID == IDCANCEL)
                {
                    IDestroy();
                    return TRUE;
                }
                else if (resID == IDC_EXPORT)
                {
                    IDoExport();
                    return TRUE;
                }
                else if (resID == IDC_PRESHADE_CHECK)
                {
                    fPreshade = (IsDlgButtonChecked(hDlg, IDC_PRESHADE_CHECK) == BST_CHECKED);
                    return TRUE;
                }
                else if (resID == IDC_PHYSICAL_CHECK)
                {
                    fPhysicalsOnly = (IsDlgButtonChecked(hDlg, IDC_PHYSICAL_CHECK) == BST_CHECKED);
                    return TRUE;
                }
                else if (resID == IDC_LIGHTMAP_CHECK)
                {
                    fLightMap = (IsDlgButtonChecked(hDlg, IDC_LIGHTMAP_CHECK) == BST_CHECKED);
                    return TRUE;
                }
                else if (resID == IDC_DIR)
                {
                    // Get a new client path
                    plFileName path = plMaxConfig::GetClientPath(true);
                    if (path.IsValid())
                        SetDlgItemText(hDlg, IDC_CLIENT_PATH, path.AsString().c_str());
                    return TRUE;
                }
                else if (resID == IDC_RADIO_FILE || resID == IDC_RADIO_DIR)
                {
                    IGetRadio(hDlg);
                    return TRUE;
                }
                else if (resID == IDC_BROWSE_EXPORT)
                {
                    fExportSourceDir = plBrowseFolder::GetFolder(fExportSourceDir,
                                              "Choose the source directory",
                                              hDlg);
                    SetDlgItemTextW(hDlg, IDC_EXPORT_PATH, fExportSourceDir.AsString().ToWchar());
                    return TRUE;
                }
            }
            else if (cmd == CBN_SELCHANGE && resID == IDC_PAGE_COMBO)
            {
                int sel = ComboBox_GetCurSel((HWND)lParam);
                // If the user selected a page, save it
                if (sel != 0 && sel != CB_ERR)
                    ComboBox_GetText((HWND)lParam, fExportPage, sizeof(fExportPage));
                // Else, clear it (export all pages)
                else
                    fExportPage[0] = '\0';
                return TRUE;
            }
        }
        break;
    }

    return FALSE;
}
Exemplo n.º 26
0
static BOOL
GUIDisplayStatusMessage(
    IN PGINA_CONTEXT pgContext,
    IN HDESK hDesktop,
    IN DWORD dwOptions,
    IN PWSTR pTitle,
    IN PWSTR pMessage)
{
    PDISPLAYSTATUSMSG msg;
    HANDLE Thread;
    DWORD ThreadId;

    TRACE("GUIDisplayStatusMessage(%ws)\n", pMessage);

    if (!pgContext->hStatusWindow)
    {
        /*
         * If everything goes correctly, 'msg' is freed
         * by the 'StartupWindowThread' thread.
         */
        msg = (PDISPLAYSTATUSMSG)HeapAlloc(GetProcessHeap(),
                                           HEAP_ZERO_MEMORY,
                                           sizeof(DISPLAYSTATUSMSG));
        if(!msg)
            return FALSE;

        msg->Context = pgContext;
        msg->dwOptions = dwOptions;
        msg->pTitle = pTitle;
        msg->pMessage = pMessage;
        msg->hDesktop = hDesktop;

        msg->StartupEvent = CreateEventW(NULL,
                                         TRUE,
                                         FALSE,
                                         NULL);

        if (!msg->StartupEvent)
        {
            HeapFree(GetProcessHeap(), 0, msg);
            return FALSE;
        }

        Thread = CreateThread(NULL,
                              0,
                              StartupWindowThread,
                              (PVOID)msg,
                              0,
                              &ThreadId);
        if (Thread)
        {
            /* 'msg' will be freed by 'StartupWindowThread' */

            CloseHandle(Thread);
            WaitForSingleObject(msg->StartupEvent, INFINITE);
            CloseHandle(msg->StartupEvent);
            return TRUE;
        }
        else
        {
            /*
             * The 'StartupWindowThread' thread couldn't be created,
             * so we need to free the allocated 'msg'.
             */
            HeapFree(GetProcessHeap(), 0, msg);
        }

        return FALSE;
    }

    if (pTitle)
        SetWindowTextW(pgContext->hStatusWindow, pTitle);

    SetDlgItemTextW(pgContext->hStatusWindow, IDC_STATUSLABEL, pMessage);

    return TRUE;
}
Exemplo n.º 27
0
VOID
CFileDefExt::InitOpensWithField(HWND hwndDlg)
{
    WCHAR wszBuf[MAX_PATH] = L"";
    WCHAR wszPath[MAX_PATH] = L"";
    DWORD dwSize = sizeof(wszBuf);
    BOOL bUnknownApp = TRUE;
    LPCWSTR pwszExt = PathFindExtensionW(m_wszPath);

    if (RegGetValueW(HKEY_CLASSES_ROOT, pwszExt, L"", RRF_RT_REG_SZ, NULL, wszBuf, &dwSize) == ERROR_SUCCESS)
    {
        bUnknownApp = FALSE;
        StringCbCatW(wszBuf, sizeof(wszBuf), L"\\shell\\open\\command");
        dwSize = sizeof(wszPath);
        if (RegGetValueW(HKEY_CLASSES_ROOT, wszBuf, L"", RRF_RT_REG_SZ, NULL, wszPath, &dwSize) == ERROR_SUCCESS)
        {
            /* Get path from command line */
            ExpandEnvironmentStringsW(wszPath, wszBuf, _countof(wszBuf));
            PathRemoveArgs(wszBuf);
            PathUnquoteSpacesW(wszBuf);
            PathSearchAndQualify(wszBuf, wszPath, _countof(wszPath));

            HICON hIcon;
            if (ExtractIconExW(wszPath, 0, NULL, &hIcon, 1))
            {
                HWND hIconCtrl = GetDlgItem(hwndDlg, 14025);
                HWND hDescrCtrl = GetDlgItem(hwndDlg, 14007);
                ShowWindow(hIconCtrl, SW_SHOW);
                RECT rcIcon, rcDescr;
                GetWindowRect(hIconCtrl, &rcIcon);
                if (rcIcon.left == rcIcon.right)
                    ERR("Icon control has invalid width: %d-%d\n", rcIcon.left, rcIcon.right);
                MapWindowPoints(NULL, hwndDlg, (LPPOINT)&rcIcon, 2);
                GetWindowRect(hDescrCtrl, &rcDescr);
                MapWindowPoints(NULL, hwndDlg, (LPPOINT)&rcDescr, 2);
                INT cxOffset = rcIcon.right + 2 - rcDescr.left;
                SetWindowPos(hDescrCtrl, NULL,
                             rcDescr.left + cxOffset, rcDescr.top,
                             rcDescr.right - rcDescr.left - cxOffset, rcDescr.bottom - rcDescr.top,
                             SWP_NOZORDER);
                SendMessageW(hIconCtrl, STM_SETICON, (WPARAM)hIcon, 0);
            } else
                ERR("Failed to extract icon\n");

            if (PathFileExistsW(wszPath))
            {
                /* Get file description */
                CFileVersionInfo VerInfo;
                VerInfo.Load(wszPath);
                LPCWSTR pwszDescr = VerInfo.GetString(L"FileDescription");
                if (pwszDescr)
                    SetDlgItemTextW(hwndDlg, 14007, pwszDescr);
                else
                {
                    /* File has no description - display filename */
                    LPWSTR pwszFilename = PathFindFileNameW(wszPath);
                    PathRemoveExtension(pwszFilename);
                    pwszFilename[0] = towupper(pwszFilename[0]);
                    SetDlgItemTextW(hwndDlg, 14007, pwszFilename);
                }
            }
            else
                bUnknownApp = TRUE;
        } else
            WARN("RegGetValueW %ls failed\n", wszBuf);
    } else
        WARN("RegGetValueW %ls failed\n", pwszExt);

    if (bUnknownApp)
    {
        /* Unknown application */
        LoadStringW(shell32_hInstance, IDS_UNKNOWN_APP, wszBuf, _countof(wszBuf));
        SetDlgItemTextW(hwndDlg, 14007, wszBuf);
    }
}
Exemplo n.º 28
0
static
INT_PTR
CALLBACK
UnlockWindowProc(
    IN HWND hwndDlg,
    IN UINT uMsg,
    IN WPARAM wParam,
    IN LPARAM lParam)
{
    PGINA_CONTEXT pgContext;
    INT result = WLX_SAS_ACTION_NONE;

    pgContext = (PGINA_CONTEXT)GetWindowLongPtr(hwndDlg, GWL_USERDATA);

    switch (uMsg)
    {
    case WM_INITDIALOG:
        pgContext = (PGINA_CONTEXT)lParam;
        SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)pgContext);

        SetLockMessage(hwndDlg, IDC_LOCKMSG, pgContext);

        SetDlgItemTextW(hwndDlg, IDC_USERNAME, pgContext->UserName);
        SetFocus(GetDlgItem(hwndDlg, IDC_PASSWORD));

        if (pgContext->bDisableCAD == TRUE)
            EnableWindow(GetDlgItem(hwndDlg, IDCANCEL), FALSE);

        pgContext->hBitmap = LoadImage(hDllInstance, MAKEINTRESOURCE(IDI_ROSLOGO), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR);
        return TRUE;

    case WM_PAINT:
    {
        PAINTSTRUCT ps;
        HDC hdc;
        if (pgContext->hBitmap)
        {
            hdc = BeginPaint(hwndDlg, &ps);
            DrawStateW(hdc, NULL, NULL, (LPARAM)pgContext->hBitmap, (WPARAM)0, 0, 0, 0, 0, DST_BITMAP);
            EndPaint(hwndDlg, &ps);
        }
        return TRUE;
    }
    case WM_DESTROY:
        DeleteObject(pgContext->hBitmap);
        return TRUE;

    case WM_COMMAND:
        switch (LOWORD(wParam))
        {
        case IDOK:
            if (DoUnlock(hwndDlg, pgContext, &result))
                EndDialog(hwndDlg, result);
            return TRUE;

        case IDCANCEL:
            EndDialog(hwndDlg, WLX_SAS_ACTION_NONE);
            return TRUE;
        }
        break;
    }

    return FALSE;
}
void BacnetRange::Timer2_handle()
{
	int sel_value;
	CString temp_value;
	SetDlgItemTextW(IDC_STATIC_RANGE_UNITE_SHOW,_T(""));
	GetDlgItemTextW(IDC_EDIT_RANGE_SELECT,temp_value);
	sel_value = _wtoi(temp_value);

	if((bac_ranges_type == VARIABLE_RANGE_ANALOG_TYPE) || 
		(initial_dialog == 1))
	{
		if(sel_value <= 30)
		{
			bac_ranges_type = VARIABLE_RANGE_DIGITAL_TYPE;
			for (int i=IDC_RADIO1;i<=IDC_RADIO34;i++)
			{
				((CButton *)GetDlgItem(i))->SetCheck(false);
			}
			if(sel_value<=11)
			{
				m_digital_select = sel_value;
				CRect c4;
				GetDlgItem(IDC_RADIO35 + m_digital_select)->GetWindowRect(c4);   //获取控件的位置 ,饼调整位置;
				ScreenToClient(c4);  
				m_rang_pic.SetWindowPos(NULL,c4.left - 40,c4.top - 4,0,0,SWP_NOZORDER|SWP_NOSIZE);
				m_rang_pic.Invalidate(TRUE);
				for (int i=IDC_RADIO35;i<=IDC_RADIO46;i++)
				{
					((CButton *)GetDlgItem(i))->SetCheck(false);
				}
				for (int i=IDC_RADIO73;i<=IDC_RADIO80;i++)
				{
					((CButton *)GetDlgItem(i))->SetCheck(false);
				}
				((CButton *)GetDlgItem(IDC_RADIO35 + m_digital_select))->SetCheck(true);
			}
			else if((sel_value>11) && (sel_value <=22))
			{
				m_digital_select = sel_value - 11;
				CRect c4;
				GetDlgItem(IDC_RADIO35 + m_digital_select)->GetWindowRect(c4);   //获取控件的位置 ,饼调整位置;
				ScreenToClient(c4);  
				m_rang_pic.SetWindowPos(NULL,c4.left - 40,c4.top - 4,0,0,SWP_NOZORDER|SWP_NOSIZE);
				m_rang_pic.Invalidate(TRUE);

				for (int i=IDC_RADIO35;i<=IDC_RADIO46;i++)
				{
					((CButton *)GetDlgItem(i))->SetCheck(false);
				}
				for (int i=IDC_RADIO73;i<=IDC_RADIO80;i++)
				{
					((CButton *)GetDlgItem(i))->SetCheck(false);
				}
				((CButton *)GetDlgItem(IDC_RADIO35 + m_digital_select))->SetCheck(true);
			}
			else
			{
				m_digital_select = sel_value - 11;
				CRect c4;
				GetDlgItem(IDC_RADIO73 + sel_value - 23 )->GetWindowRect(c4);   //获取控件的位置 ,饼调整位置;
				ScreenToClient(c4);  
				m_rang_pic.SetWindowPos(NULL,c4.left - 40,c4.top - 4,0,0,SWP_NOZORDER|SWP_NOSIZE);
				m_rang_pic.Invalidate(TRUE);
				for (int i=IDC_RADIO35;i<=IDC_RADIO46;i++)
				{
					((CButton *)GetDlgItem(i))->SetCheck(false);
				}
				for (int i=IDC_RADIO73;i<=IDC_RADIO80;i++)
				{
					((CButton *)GetDlgItem(i))->SetCheck(false);
				}
				((CButton *)GetDlgItem(IDC_RADIO73 + sel_value - 23))->SetCheck(true);
			}
		}
		else if(sel_value <= 63)
		{
			bac_ranges_type = VARIABLE_RANGE_ANALOG_TYPE;
			for (int i=IDC_RADIO35;i<=IDC_RADIO46;i++)
			{
				((CButton *)GetDlgItem(i))->SetCheck(false);
			}
			for (int i=IDC_RADIO73;i<=IDC_RADIO80;i++)
			{
				((CButton *)GetDlgItem(i))->SetCheck(false);
			}
			m_analog_select = sel_value - 30 ;
			CRect c4;
			GetDlgItem(IDC_RADIO1 + m_analog_select )->GetWindowRect(c4);   //获取控件的位置 ,饼调整位置;
			ScreenToClient(c4);  
			m_rang_pic.SetWindowPos(NULL,c4.left - 40,c4.top - 4,0,0,SWP_NOZORDER|SWP_NOSIZE);
			m_rang_pic.Invalidate(TRUE);

			for (int i=IDC_RADIO1;i<=IDC_RADIO34;i++)
			{
				((CButton *)GetDlgItem(i))->SetCheck(false);
			}
			((CButton *)GetDlgItem(IDC_RADIO1 + m_analog_select))->SetCheck(true);
		}
		else
		{
			MessageBox(_T("Out of range"));
			SetDlgItemTextW(IDC_EDIT_RANGE_SELECT,_T(""));
		}
	}
	else if((bac_ranges_type == OUTPUT_RANGE_ANALOG_TYPE) || 	(initial_dialog == 3))
	{
		if(sel_value <= 30)
		{
			bac_ranges_type = OUTPUT_RANGE_ANALOG_TYPE;
			for (int i=IDC_RADIO47;i<=IDC_RADIO53;i++)
			{
				((CButton *)GetDlgItem(i))->SetCheck(false);
			}
			m_output_Analog_select = 0;
			if(sel_value<=11)
			{
				m_digital_select = sel_value;
				CRect c4;
				GetDlgItem(IDC_RADIO35 + m_digital_select)->GetWindowRect(c4);   //获取控件的位置 ,饼调整位置;
				ScreenToClient(c4);  
				m_rang_pic.SetWindowPos(NULL,c4.left - 40,c4.top - 4,0,0,SWP_NOZORDER|SWP_NOSIZE);
				m_rang_pic.Invalidate(TRUE);

				for (int i=IDC_RADIO35;i<=IDC_RADIO46;i++)
				{
					((CButton *)GetDlgItem(i))->SetCheck(false);
				}
				for (int i=IDC_RADIO73;i<=IDC_RADIO80;i++)
				{
					((CButton *)GetDlgItem(i))->SetCheck(false);
				}
				((CButton *)GetDlgItem(IDC_RADIO35 + m_digital_select))->SetCheck(true);


			}
			else if((sel_value>11) && (sel_value <=22))
			{
				m_digital_select = sel_value - 11;
				CRect c4;
				GetDlgItem(IDC_RADIO35 + m_digital_select)->GetWindowRect(c4);   //获取控件的位置 ,饼调整位置;
				ScreenToClient(c4);  
				m_rang_pic.SetWindowPos(NULL,c4.left - 40,c4.top - 4,0,0,SWP_NOZORDER|SWP_NOSIZE);
				m_rang_pic.Invalidate(TRUE);

				for (int i=IDC_RADIO35;i<=IDC_RADIO46;i++)
				{
					((CButton *)GetDlgItem(i))->SetCheck(false);
				}
				for (int i=IDC_RADIO73;i<=IDC_RADIO80;i++)
				{
					((CButton *)GetDlgItem(i))->SetCheck(false);
				}
				((CButton *)GetDlgItem(IDC_RADIO35 + m_digital_select))->SetCheck(true);
			}
			else
			{
				m_digital_select = sel_value - 11;
				CRect c4;
				GetDlgItem(IDC_RADIO73 + sel_value - 23 )->GetWindowRect(c4);   //获取控件的位置 ,饼调整位置;
				ScreenToClient(c4);  
				m_rang_pic.SetWindowPos(NULL,c4.left - 40,c4.top - 4,0,0,SWP_NOZORDER|SWP_NOSIZE);
				m_rang_pic.Invalidate(TRUE);

				for (int i=IDC_RADIO35;i<=IDC_RADIO46;i++)
				{
					((CButton *)GetDlgItem(i))->SetCheck(false);
				}
				for (int i=IDC_RADIO73;i<=IDC_RADIO80;i++)
				{
					((CButton *)GetDlgItem(i))->SetCheck(false);
				}
				((CButton *)GetDlgItem(IDC_RADIO73 + sel_value - 23))->SetCheck(true);
			}
		}
		else if(sel_value <= 36)
		{
			bac_ranges_type = OUTPUT_RANGE_ANALOG_TYPE;
			for (int i=IDC_RADIO35;i<=IDC_RADIO46;i++)
			{
				((CButton *)GetDlgItem(i))->SetCheck(false);
			}
			for (int i=IDC_RADIO73;i<=IDC_RADIO80;i++)
			{
				((CButton *)GetDlgItem(i))->SetCheck(false);
			}
			m_output_Analog_select = sel_value - 30 ;
			CRect c4;
			GetDlgItem(IDC_RADIO47 + m_output_Analog_select )->GetWindowRect(c4);   //获取控件的位置 ,饼调整位置;
			ScreenToClient(c4);  
			m_rang_pic.SetWindowPos(NULL,c4.left - 40,c4.top - 4,0,0,SWP_NOZORDER|SWP_NOSIZE);
			m_rang_pic.Invalidate(TRUE);

			for (int i=IDC_RADIO47;i<=IDC_RADIO53;i++)
			{
				((CButton *)GetDlgItem(i))->SetCheck(false);
			}
			((CButton *)GetDlgItem(IDC_RADIO47 + m_output_Analog_select))->SetCheck(true);
		}
		else
		{
			MessageBox(_T("Out of range"));
			SetDlgItemTextW(IDC_EDIT_RANGE_SELECT,_T(""));
		}
	}
	else if((bac_ranges_type == INPUT_RANGE_ANALOG_TYPE) || 	(initial_dialog == 2))
	{
		if(sel_value <= 30)
		{
			bac_ranges_type = INPUT_RANGE_DIGITAL_TYPE;
			for (int i=IDC_RADIO54;i<=IDC_RADIO72;i++)
			{
				((CButton *)GetDlgItem(i))->SetCheck(false);
			}
			((CButton *)GetDlgItem(IDC_RADIO81))->SetCheck(false);
			m_input_Analog_select = 0;
			if(sel_value<=11)
			{
				m_digital_select = sel_value;
				CRect c4;
				GetDlgItem(IDC_RADIO35 + m_digital_select)->GetWindowRect(c4);   //获取控件的位置 ,饼调整位置;
				ScreenToClient(c4);  
				m_rang_pic.SetWindowPos(NULL,c4.left - 40,c4.top - 4,0,0,SWP_NOZORDER|SWP_NOSIZE);
				m_rang_pic.Invalidate(TRUE);
				for (int i=IDC_RADIO35;i<=IDC_RADIO46;i++)
				{
					((CButton *)GetDlgItem(i))->SetCheck(false);
				}
				for (int i=IDC_RADIO73;i<=IDC_RADIO80;i++)
				{
					((CButton *)GetDlgItem(i))->SetCheck(false);
				}
				((CButton *)GetDlgItem(IDC_RADIO35 + m_digital_select))->SetCheck(true);
			}
			else if((sel_value>11) && (sel_value <=22))
			{
				m_digital_select = sel_value - 11;
				CRect c4;
				GetDlgItem(IDC_RADIO35 + m_digital_select)->GetWindowRect(c4);   //获取控件的位置 ,饼调整位置;
				ScreenToClient(c4);  
				m_rang_pic.SetWindowPos(NULL,c4.left - 40,c4.top - 4,0,0,SWP_NOZORDER|SWP_NOSIZE);
				m_rang_pic.Invalidate(TRUE);
				for (int i=IDC_RADIO35;i<=IDC_RADIO46;i++)
				{
					((CButton *)GetDlgItem(i))->SetCheck(false);
				}
				for (int i=IDC_RADIO73;i<=IDC_RADIO80;i++)
				{
					((CButton *)GetDlgItem(i))->SetCheck(false);
				}
				((CButton *)GetDlgItem(IDC_RADIO35 + m_digital_select))->SetCheck(true);
			}
			else
			{
				m_digital_select = sel_value - 11;
				CRect c4;
				GetDlgItem(IDC_RADIO73 + sel_value - 23 )->GetWindowRect(c4);   //获取控件的位置 ,饼调整位置;
				ScreenToClient(c4);  
				m_rang_pic.SetWindowPos(NULL,c4.left - 40,c4.top - 4,0,0,SWP_NOZORDER|SWP_NOSIZE);
				m_rang_pic.Invalidate(TRUE);

				for (int i=IDC_RADIO35;i<=IDC_RADIO46;i++)
				{
					((CButton *)GetDlgItem(i))->SetCheck(false);
				}
				for (int i=IDC_RADIO73;i<=IDC_RADIO80;i++)
				{
					((CButton *)GetDlgItem(i))->SetCheck(false);
				}
				((CButton *)GetDlgItem(IDC_RADIO73 + sel_value - 23))->SetCheck(true);

			}
		}
		else if(sel_value <= 49)
		{
			bac_ranges_type = INPUT_RANGE_ANALOG_TYPE;
			for (int i=IDC_RADIO35;i<=IDC_RADIO46;i++)
			{
				((CButton *)GetDlgItem(i))->SetCheck(false);
			}
			for (int i=IDC_RADIO73;i<=IDC_RADIO80;i++)
			{
				((CButton *)GetDlgItem(i))->SetCheck(false);
			}
			m_input_Analog_select = sel_value - 30 ;

			if(sel_value == 49)
			{
				CRect c4;
				GetDlgItem(IDC_RADIO81)->GetWindowRect(c4);   //获取控件的位置 ,饼调整位置;
				ScreenToClient(c4);  
				m_rang_pic.SetWindowPos(NULL,c4.left - 40,c4.top - 4,0,0,SWP_NOZORDER|SWP_NOSIZE);
				m_rang_pic.Invalidate(TRUE);
			}
			else
			{
				CRect c4;
				GetDlgItem(IDC_RADIO54 + m_input_Analog_select )->GetWindowRect(c4);   //获取控件的位置 ,饼调整位置;
				ScreenToClient(c4);  
				m_rang_pic.SetWindowPos(NULL,c4.left - 40,c4.top - 4,0,0,SWP_NOZORDER|SWP_NOSIZE);
				m_rang_pic.Invalidate(TRUE);
			}


			for (int i=IDC_RADIO54;i<=IDC_RADIO72;i++)
			{
				((CButton *)GetDlgItem(i))->SetCheck(false);
			}
			((CButton *)GetDlgItem(IDC_RADIO81))->SetCheck(false);
			if(sel_value == 49)
			{
				((CButton *)GetDlgItem(IDC_RADIO81))->SetCheck(true);
			}
			else
			{
			((CButton *)GetDlgItem(IDC_RADIO54 + m_input_Analog_select))->SetCheck(true);
			}

		}
		else
		{
			MessageBox(_T("Out of range"));
			SetDlgItemTextW(IDC_EDIT_RANGE_SELECT,_T(""));
		}
	}
}