extern void LoadSettings(void) { HKEY hKey = NULL; int iItemIndex = -1; if (RegOpenKeyEx(HKEY_CURRENT_USER, g_szGeneralRegKey, 0, KEY_READ, &hKey) == ERROR_SUCCESS) { TCHAR szBuffer[MAX_PATH]; DWORD dwAdvanChecked; unsigned long type = REG_DWORD, size = 1024; /* Restore last selected font */ if (QueryStringValue(HKEY_CURRENT_USER, g_szGeneralRegKey, _T("Font"), szBuffer, (sizeof(szBuffer)/sizeof(szBuffer[0]))) == ERROR_SUCCESS) { //Get combobox handle hWnd = GetDlgItem(hCharmapDlg, IDC_FONTCOMBO); //Search for match and return index if match found iItemIndex = ComboBox_FindStringExact(hWnd, -1, szBuffer); if(iItemIndex != CB_ERR) { ComboBox_SetCurSel(hWnd, iItemIndex); ChangeMapFont(hCharmapDlg); } } /* Restore last selected character set */ if (QueryStringValue(HKEY_CURRENT_USER, g_szGeneralRegKey, _T("CodePage"), szBuffer, (sizeof(szBuffer)/sizeof(szBuffer[0]))) == ERROR_SUCCESS) { //Get combobox handle hWnd = GetDlgItem(hCharmapDlg, IDC_COMBO_CHARSET); iItemIndex = ComboBox_FindStringExact(hWnd, -1, szBuffer); if(iItemIndex != CB_ERR) { ComboBox_SetCurSel(hWnd, iItemIndex); } } RegQueryValueEx(hKey, _T("Advanced"), NULL, &type, (LPBYTE)&dwAdvanChecked, &size); if(dwAdvanChecked == TRUE) SendDlgItemMessage(hCharmapDlg, IDC_CHECK_ADVANCED, BM_CLICK, MF_CHECKED, 0); RegCloseKey(hKey); } else { /* Default font seems to be Arial */ hWnd = GetDlgItem(hCharmapDlg, IDC_FONTCOMBO); iItemIndex = ComboBox_FindStringExact(hWnd, -1, _T("Arial")); if(iItemIndex != CB_ERR) { ComboBox_SetCurSel(hWnd, iItemIndex); ChangeMapFont(hCharmapDlg); } } }
BOOL CFileVersionInfo::QueryStringValue( IN INT nIndex, OUT LPTSTR lpszValue, IN INT nBuf ) const { if( nIndex < VI_STR_COMMENTS || nIndex > VI_STR_OLESELFREGISTER ) { ASSERT_RETURN( FALSE ); } return QueryStringValue( s_ppszStr[ nIndex ], lpszValue, nBuf ); }
UnicodeString __fastcall TVersionInfo::GetProductVersion(void) const { return QueryStringValue(L"ProductVersion"); }
CString CVersionInfo::GetLegalTrademarks() { return(QueryStringValue("LegalTrademarks")); }
UnicodeString __fastcall TVersionInfo::GetOriginalFileName(void) const { return QueryStringValue(L"OriginalFileName"); }
LPCTSTR CSLVerInfo::GetProductName() { return QueryStringValue(_T("ProductName")); };
int ScanEnumTree( t_usbInterface* usbInt, LPCTSTR lpEnumPath, TCHAR** openPorts ) { static const TCHAR lpstrPortsClass[] = TEXT("PORTS"); static const TCHAR lpstrPortsClassGUID[] = TEXT("{4D36E978-E325-11CE-BFC1-08002BE10318}"); DWORD dwError=0; HKEY hkEnum=NULL; DWORD dwIndex1; HKEY hkLevel1=NULL; DWORD dwIndex2; HKEY hkLevel2=NULL; HKEY hkDeviceParameters=NULL; TCHAR lpClass[sizeof(lpstrPortsClass)/sizeof(lpstrPortsClass[0])]; DWORD cbClass; TCHAR lpClassGUID[sizeof(lpstrPortsClassGUID)/sizeof(lpstrPortsClassGUID[0])]; DWORD cbClassGUID; LPTSTR lpPortName=NULL; LPTSTR lpFriendlyName=NULL; int result; int openCount = 0; typedef struct { LPCTSTR lpPortName; /* "COM1", etc. */ LPCTSTR lpFriendlyName; /* Suitable to describe the port, as for */ /* instance "Infrared serial port (COM4)" */ }LISTPORTS_PORTINFO; if(dwError=RegOpenKeyEx(HKEY_LOCAL_MACHINE,lpEnumPath,0,KEY_ENUMERATE_SUB_KEYS,&hkEnum)){ goto end; } for(dwIndex1=0;;++dwIndex1) { //post("finding loop; dwIndex1 = %d\n", dwIndex1); if(hkLevel1!=NULL){ RegCloseKey(hkLevel1); hkLevel1=NULL; } if(dwError=OpenSubKeyByIndex(hkEnum,dwIndex1,KEY_ENUMERATE_SUB_KEYS,&hkLevel1)){ if(dwError==ERROR_NO_MORE_ITEMS){ dwError=0; break; } else goto end; } for(dwIndex2=0;;++dwIndex2){ BOOL bFriendlyNameNotFound=FALSE; LISTPORTS_PORTINFO portinfo; if(hkLevel2!=NULL){ RegCloseKey(hkLevel2); hkLevel2=NULL; } if(dwError=OpenSubKeyByIndex(hkLevel1,dwIndex2,KEY_READ,&hkLevel2)){ if(dwError==ERROR_NO_MORE_ITEMS){ dwError=0; break; } else goto end; } /* Look if the driver class is the one we're looking for. * We accept either "CLASS" or "CLASSGUID" as identifiers. * No need to dynamically arrange for space to retrieve the values, * they must have the same length as the strings they're compared to * if the comparison is to be succesful. */ cbClass=sizeof(lpClass); if(RegQueryValueEx(hkLevel2,TEXT("CLASS"),NULL,NULL, (LPBYTE)lpClass,&cbClass)==ERROR_SUCCESS&& _tcsicmp(lpClass,lpstrPortsClass)==0){ /* ok */ } else{ cbClassGUID=sizeof(lpClassGUID); if(RegQueryValueEx(hkLevel2,TEXT("CLASSGUID"),NULL,NULL, (LPBYTE)lpClassGUID,&cbClassGUID)==ERROR_SUCCESS&& _tcsicmp(lpClassGUID,lpstrPortsClassGUID)==0){ /* ok */ } else continue; } /* get "PORTNAME" */ dwError=QueryStringValue(hkLevel2,TEXT("PORTNAME"),&lpPortName); if(dwError==ERROR_FILE_NOT_FOUND){ /* In Win200, "PORTNAME" is located under the subkey "DEVICE PARAMETERS". * Try and look there. */ if(hkDeviceParameters!=NULL){ RegCloseKey(hkDeviceParameters); hkDeviceParameters=NULL; } if(RegOpenKeyEx(hkLevel2,TEXT("DEVICE PARAMETERS"),0,KEY_READ, &hkDeviceParameters)==ERROR_SUCCESS){ dwError=QueryStringValue(hkDeviceParameters,TEXT("PORTNAME"),&lpPortName); } } if(dwError){ if(dwError==ERROR_FILE_NOT_FOUND){ /* boy that was strange, we better skip this device */ dwError=0; continue; } else goto end; } //post("found port, name %ls\n", lpPortName); /* check if it is a serial port (instead of, say, a parallel port) */ if(_tcsncmp(lpPortName,TEXT("COM"),3)!=0)continue; /* now go for "FRIENDLYNAME" */ if(dwError=QueryStringValue(hkLevel2,TEXT("FRIENDLYNAME"),&lpFriendlyName)){ if(dwError==ERROR_FILE_NOT_FOUND){ bFriendlyNameNotFound=TRUE; dwError=0; } else goto end; } /* Assemble the information and pass it on to the callback. * In the unlikely case there's no friendly name available, * use port name instead. */ portinfo.lpPortName=lpPortName; portinfo.lpFriendlyName=bFriendlyNameNotFound?lpPortName:lpFriendlyName; { //post( "Friendly name: %s\n", portinfo.lpFriendlyName ); if (!_tcsncmp(TEXT("Make Controller Kit"), portinfo.lpFriendlyName, 19)) { TCHAR* pname; pname = _tcsdup(portinfo.lpPortName); // We've found a matching entry in the registry... // Now see if it's actually there by trying to open it result = testOpen( usbInt, pname ); // if it is, store it if( result == 0 ) openPorts[ openCount++ ] = pname; } } } } goto end; end: free(lpFriendlyName); free(lpPortName); if(hkDeviceParameters!=NULL)RegCloseKey(hkDeviceParameters); if(hkLevel2!=NULL) RegCloseKey(hkLevel2); if(hkLevel1!=NULL) RegCloseKey(hkLevel1); if(hkEnum!=NULL) RegCloseKey(hkEnum); if(dwError!=0) { SetLastError(dwError); return 0; } else return openCount; }
LPCTSTR CSLVerInfo::GetInternalName() { return QueryStringValue(_T("InternalName")); };
LPCTSTR CSLVerInfo::GetLegalCopyright() { return QueryStringValue(_T("LegalCopyright")); };
CString CVersionInfo::GetFileVersionString() { return(QueryStringValue("FileVersion")); }
String __fastcall TVersionInfo::GetComments(void) const { return QueryStringValue(L"Comments"); }
CString CVersionInfo::GetPrivateBuildString() { return(QueryStringValue("PrivateBuild")); }
CString CVersionInfo::GetCompanyName() { return(QueryStringValue("CompanyName")); }
CString CVersionInfo::GetSpecialBuildString() { return(QueryStringValue("SpecialBuild")); }
CString CVersionInfo::GetProductName() { return(QueryStringValue("ProductName")); }
CString CVersionInfo::GetOriginalFileName() { return(QueryStringValue("OriginalFilename")); }
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) { BOOL AclUiAvailable; HMENU hEditMenu; TCHAR szBuffer[256]; WNDCLASSEX wcFrame; WNDCLASSEX wcChild; ATOM hFrameWndClass; ZeroMemory(&wcFrame, sizeof(WNDCLASSEX)); wcFrame.cbSize = sizeof(WNDCLASSEX); wcFrame.lpfnWndProc = FrameWndProc; wcFrame.hInstance = hInstance; wcFrame.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_REGEDIT)); wcFrame.hIconSm = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_REGEDIT), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), LR_SHARED); wcFrame.hCursor = LoadCursor(0, IDC_ARROW); wcFrame.lpszClassName = szFrameClass; hFrameWndClass = RegisterClassEx(&wcFrame); /* register frame window class */ ZeroMemory(&wcChild, sizeof(WNDCLASSEX)); wcChild.cbSize = sizeof(WNDCLASSEX); wcChild.lpfnWndProc = ChildWndProc; wcChild.cbWndExtra = sizeof(HANDLE); wcChild.hInstance = hInstance; wcChild.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_REGEDIT)); wcChild.hCursor = LoadCursor(0, IDC_ARROW), wcChild.lpszClassName = szChildClass, wcChild.hIconSm = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_REGEDIT), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), LR_SHARED); RegisterClassEx(&wcChild); /* register child windows class */ RegisterHexEditorClass(hInstance); hMenuFrame = LoadMenu(hInstance, MAKEINTRESOURCE(IDR_REGEDIT_MENU)); hPopupMenus = LoadMenu(hInstance, MAKEINTRESOURCE(IDR_POPUP_MENUS)); /* Initialize the Windows Common Controls DLL */ InitCommonControls(); hEditMenu = GetSubMenu(hMenuFrame, 1); AclUiAvailable = InitializeAclUiDll(); if(!AclUiAvailable) { /* hide the Edit/Permissions... menu entry */ if(hEditMenu != NULL) { RemoveMenu(hEditMenu, ID_EDIT_PERMISSIONS, MF_BYCOMMAND); /* remove the separator after the menu item */ RemoveMenu(hEditMenu, 4, MF_BYPOSITION); } } if(hEditMenu != NULL) SetMenuDefaultItem(hEditMenu, ID_EDIT_MODIFY, MF_BYCOMMAND); nClipboardFormat = RegisterClipboardFormat(strClipboardFormat); /* if (nClipboardFormat == 0) { DWORD dwError = GetLastError(); } */ hFrameWnd = CreateWindowEx(WS_EX_WINDOWEDGE, (LPCTSTR)(UlongToPtr(hFrameWndClass)), szTitle, WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS | WS_CLIPCHILDREN, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, hMenuFrame, hInstance, NULL/*lpParam*/); if (!hFrameWnd) { return FALSE; } /* Create the status bar */ hStatusBar = CreateStatusWindow(WS_VISIBLE|WS_CHILD|WS_CLIPSIBLINGS|WS_CLIPCHILDREN|SBT_NOBORDERS, _T(""), hFrameWnd, STATUS_WINDOW); if (hStatusBar) { /* Create the status bar panes */ SetupStatusBar(hFrameWnd, FALSE); CheckMenuItem(GetSubMenu(hMenuFrame, ID_VIEW_MENU), ID_VIEW_STATUSBAR, MF_BYCOMMAND|MF_CHECKED); } /* Restore position */ if (QueryStringValue(HKEY_CURRENT_USER, g_szGeneralRegKey, _T("LastKey"), szBuffer, COUNT_OF(szBuffer)) == ERROR_SUCCESS) { SelectNode(g_pChildWnd->hTreeWnd, szBuffer); } ShowWindow(hFrameWnd, nCmdShow); UpdateWindow(hFrameWnd); return TRUE; }
UnicodeString __fastcall TVersionInfo::GetCompanyName(void) const { return QueryStringValue(L"CompanyName"); }
LPCTSTR CSLVerInfo::GetFileVersion() { return QueryStringValue(_T("FileVersion")); };
UnicodeString __fastcall TVersionInfo::GetFileVersion(void) const { return QueryStringValue(L"FileVersion"); }
LPCTSTR CSLVerInfo::GetCompanyName() { return QueryStringValue(_T("CompanyName")); };
UnicodeString __fastcall TVersionInfo::GetInternalName(void) const { return QueryStringValue(L"InternalName"); }
LPCTSTR CSLVerInfo::GetOriginalFilename() { return QueryStringValue(_T("OriginalFilename")); };
static void SuggestKeys(HKEY hRootKey, LPCWSTR pszKeyPath, LPWSTR pszSuggestions, size_t iSuggestionsLength) { WCHAR szBuffer[256]; WCHAR szLastFound[256]; size_t i; HKEY hOtherKey, hSubKey; BOOL bFound; memset(pszSuggestions, 0, iSuggestionsLength * sizeof(*pszSuggestions)); iSuggestionsLength--; /* Are we a root key in HKEY_CLASSES_ROOT? */ if ((hRootKey == HKEY_CLASSES_ROOT) && pszKeyPath[0] && !wcschr(pszKeyPath, L'\\')) { do { bFound = FALSE; /* Check default key */ if (QueryStringValue(hRootKey, pszKeyPath, NULL, szBuffer, COUNT_OF(szBuffer)) == ERROR_SUCCESS) { /* Sanity check this key; it cannot be empty, nor can it be a * loop back */ if ((szBuffer[0] != L'\0') && _wcsicmp(szBuffer, pszKeyPath)) { if (RegOpenKeyW(hRootKey, szBuffer, &hOtherKey) == ERROR_SUCCESS) { lstrcpynW(pszSuggestions, L"HKCR\\", (int) iSuggestionsLength); i = wcslen(pszSuggestions); pszSuggestions += i; iSuggestionsLength -= i; lstrcpynW(pszSuggestions, szBuffer, (int) iSuggestionsLength); i = MIN(wcslen(pszSuggestions) + 1, iSuggestionsLength); pszSuggestions += i; iSuggestionsLength -= i; RegCloseKey(hOtherKey); bFound = TRUE; wcscpy(szLastFound, szBuffer); pszKeyPath = szLastFound; } } } } while(bFound && (iSuggestionsLength > 0)); /* Check CLSID key */ if (RegOpenKeyW(hRootKey, pszKeyPath, &hSubKey) == ERROR_SUCCESS) { if (QueryStringValue(hSubKey, L"CLSID", NULL, szBuffer, COUNT_OF(szBuffer)) == ERROR_SUCCESS) { lstrcpynW(pszSuggestions, L"HKCR\\CLSID\\", (int)iSuggestionsLength); i = wcslen(pszSuggestions); pszSuggestions += i; iSuggestionsLength -= i; lstrcpynW(pszSuggestions, szBuffer, (int)iSuggestionsLength); i = MIN(wcslen(pszSuggestions) + 1, iSuggestionsLength); pszSuggestions += i; iSuggestionsLength -= i; } RegCloseKey(hSubKey); } } }
LPCTSTR CSLVerInfo::GetProductVersion() { return QueryStringValue(_T("ProductVersion")); };
CString CVersionInfo::GetInternalName() { return(QueryStringValue("InternalName")); }
UnicodeString __fastcall TVersionInfo::GetLegalCopyright(void) const { return QueryStringValue(L"LegalCopyright"); }
CString CVersionInfo::GetLegalCopyright() { return(QueryStringValue("LegalCopyright")); }
UnicodeString __fastcall TVersionInfo::GetLegalTrademarks(void) const { return QueryStringValue(L"LegalTrademarks"); }
CString CVersionInfo::GetFileDescription() { return(QueryStringValue("FileDescription")); }