Пример #1
0
BOOL
CALLBACK
EnumAvailableAppProc(APPLICATION_INFO Info)
{
    PAPPLICATION_INFO ItemInfo;
    INT Index;

    /* Only add a ListView entry if...
         - no RegName was supplied (so we cannot determine whether the application is installed or not) or
         - a RegName was supplied and the application is not installed
    */
    if (!*Info.szRegName || (!IsInstalledApplication(Info.szRegName, FALSE) && !IsInstalledApplication(Info.szRegName, TRUE)))
    {
        ItemInfo = HeapAlloc(GetProcessHeap(), 0, sizeof(APPLICATION_INFO));
        if (!ItemInfo) return FALSE;

        *ItemInfo = Info;

        Index = ListViewAddItem(Info.Category, 0, Info.szName, (LPARAM)ItemInfo);
        ListView_SetItemText(hListView, Index, 1, Info.szVersion);
        ListView_SetItemText(hListView, Index, 2, Info.szDesc);
    }

    return TRUE;
}
Пример #2
0
    static BOOL CALLBACK s_EnumInstalledAppProc(INT ItemIndex, LPWSTR lpName, PINSTALLED_INFO Info)
    {
        PINSTALLED_INFO ItemInfo;
        WCHAR szText[MAX_PATH];
        INT Index;

        if (!SearchPatternMatch(lpName, szSearchPattern))
        {
            RegCloseKey(Info->hSubKey);
            return TRUE;
        }

        ItemInfo = (PINSTALLED_INFO) HeapAlloc(GetProcessHeap(), 0, sizeof(INSTALLED_INFO));
        if (!ItemInfo)
        {
            RegCloseKey(Info->hSubKey);
            return FALSE;
        }

        RtlCopyMemory(ItemInfo, Info, sizeof(INSTALLED_INFO));

        Index = ListViewAddItem(ItemIndex, 0, lpName, (LPARAM) ItemInfo);

        /* Get version info */
        GetApplicationString(ItemInfo->hSubKey, L"DisplayVersion", szText);
        ListView_SetItemText(hListView, Index, 1, szText);

        /* Get comments */
        GetApplicationString(ItemInfo->hSubKey, L"Comments", szText);
        ListView_SetItemText(hListView, Index, 2, szText);

        return TRUE;
    }
Пример #3
0
BOOL
CALLBACK
EnumAvailableAppProc(PAPPLICATION_INFO Info)
{
    INT Index;

    if (!SearchPatternMatch(Info->szName, szSearchPattern) &&
        !SearchPatternMatch(Info->szDesc, szSearchPattern))
    {
        return TRUE;
    }

    /* Only add a ListView entry if...
         - no RegName was supplied (so we cannot determine whether the application is installed or not) or
         -  a RegName was supplied and the application is not installed
    */
    if (!*Info->szRegName || (!IsInstalledApplication(Info->szRegName, FALSE) && !IsInstalledApplication(Info->szRegName, TRUE)))
    {
        Index = ListViewAddItem(Info->Category, 0, Info->szName, (LPARAM)Info);

        ListView_SetItemText(hListView, Index, 1, Info->szVersion);
        ListView_SetItemText(hListView, Index, 2, Info->szDesc);
    }

    return TRUE;
}
Пример #4
0
// -----------------------------------------------------------------------
// Fill the listview with filenames
long DllDefFillFilesList(void)
{
    int i = 0;
    CStr DefValue;
    CStr DefEntryValue;
    long ReturnValue = 0;

    DefEntryValue = IniReadKey("ENTRYPOINT", "Proc", DllDefFile);
    for(i = 0; i <= StringGetSplitUBound(DllDefArray) - 1; i++)
    {
        if(strlen(StringGetSplitElement(RealProcList, DllDefArray, i).Get_String()) != 0)
        {
            ListViewAddItem(FRMDllDefListview, StringGetSplitElement(RealProcList, DllDefArray, i), i, 0);
            if(_strcmpi(StringGetSplitElement(RealProcList, DllDefArray, i).Get_String(), DefEntryValue.Get_String()) == 0) ReturnValue = i + 1;
            ComboBoxAddItem(FRMDllDefComboBox, StringGetSplitElement(RealProcList, DllDefArray, i), -1);
            DefValue = IniReadKey("EXPORTS", StringGetSplitElement(RealProcList, DllDefArray, i), DllDefFile);
            if(DefValue.Len() != 0) ListViewSetItemCheckbox(FRMDllDefListview, i, 1);
        }
    }
    return(ReturnValue);
}
Пример #5
0
BOOL
CALLBACK
EnumInstalledAppProc(INT ItemIndex, LPWSTR lpName, INSTALLED_INFO Info)
{
    PINSTALLED_INFO ItemInfo;
    WCHAR szText[MAX_PATH];
    INT Index;

    ItemInfo = HeapAlloc(GetProcessHeap(), 0, sizeof(INSTALLED_INFO));
    if (!ItemInfo) return FALSE;

    *ItemInfo = Info;

    Index = ListViewAddItem(ItemIndex, 0, lpName, (LPARAM)ItemInfo);

    /* Get version info */
    GetApplicationString((HKEY)ItemInfo->hSubKey, L"DisplayVersion", szText);
    ListView_SetItemText(hListView, Index, 1, szText);
    /* Get comments */
    GetApplicationString((HKEY)ItemInfo->hSubKey, L"Comments", szText);
    ListView_SetItemText(hListView, Index, 2, szText);

    return TRUE;
}
Пример #6
0
// -----------------------------------------------------------------------
// Fill the languages extensions
void FillExtLanguage(void)
{
    long *ExtArray = 0;
    CStr LangToCheck;
    CStr RegEntry;
    CStr BufString;
    int i = 0;
    int j = 0;
    int k = 0;
    
    // Get default extensions (.med/.mws)
    ListViewAddItem(FRMRegsListview, "med", k, 0);
    RegEntry = RegistryGetKeyValue(HKEY_CLASSES_ROOT, ".med", "");
    if(RegEntry.Len() != 0)
    {
        if(_strcmpi(RegEntry.Get_String(), "Chromatic project file") == 0)
        {
            ListViewSetItemCheckbox(FRMRegsListview, k, 1);
        }
    }
    ListViewSetSubItem(FRMRegsListview, "(Chromatic projects)", k, 1);
    k++;
    ListViewAddItem(FRMRegsListview, "mws", k, 0);
    RegEntry = RegistryGetKeyValue(HKEY_CLASSES_ROOT, ".mws", "");
    if(RegEntry.Len() != 0)
    {
        if(_strcmpi(RegEntry.Get_String(), "Chromatic workspace file") == 0)
        {
            ListViewSetItemCheckbox(FRMRegsListview, k, 1);
        }
    }
    ListViewSetSubItem(FRMRegsListview, "(Chromatic workspaces)", k, 1);
    k++;
    for(i = 0; i <= 999; i++)
    {
        FRMRegsRetVal = IniReadKey("RefLanguages", "Ext" + (CStr) StringNumberComplement(i, 3).Get_String(), LanguagesIniFile).Trim();
        LangToCheck = IniReadKey("RefLanguages", "Lang" + (CStr) StringNumberComplement(i, 3).Get_String(), LanguagesIniFile);
        if(FRMRegsRetVal.Len() == 0) break;
        LangToCheck = ChangeRelativePaths(LangToCheck);
        LangFileToRead = LangToCheck;
        FRMRegsLangName = IniReadKey("LangSpec", "LangName", LangFileToRead);
        if(FRMRegsLangName.Len() == 0)
        {
            LangToCheck = "<Error>";
        }
        else
        {
            LangToCheck = FRMRegsLangName;
        }
        ExtArray = StringSplit(FRMRegsRetVal, " ");
        if(StringGetSplitUBound(ExtArray) != -1)
        {
            for(j = 0; j <= StringGetSplitUBound(ExtArray); j++)
            {
                ListViewAddItem(FRMRegsListview, StringGetSplitElement(FRMRegsRetVal, ExtArray, j), k, 0);
                RegEntry = RegistryGetKeyValue(HKEY_CLASSES_ROOT, "." + (CStr) StringGetSplitElement(FRMRegsRetVal, ExtArray, j).Get_String(), "");
                if(RegEntry.Len() != 0)
                {
                    BufString = "Chromatic " + (CStr) StringGetSplitElement(FRMRegsRetVal, ExtArray, j).Get_String() + (CStr) " file";
                    if(_strcmpi(RegEntry.Get_String(), BufString.Get_String()) == 0)
                    {
                        ListViewSetItemCheckbox(FRMRegsListview, k, 1);
                    }
                }
                ListViewSetSubItem(FRMRegsListview, LangToCheck, k, 1);
                k++;
            }
        }
        StringReleaseSplit(ExtArray);
    }
}
Пример #7
0
// -----------------------------------------------------------------------
// The the listview with found AddIns
void FillAddinsList(void)
{
    int i = 0;
    CStr AddInName;
    HMODULE AddInLib = 0;
    FARPROC AddInDesc = 0;
    FARPROC AddInAuth = 0;
    FARPROC AddInLoad = 0;
    FARPROC AddInUnload = 0;
    FARPROC AddInMenu = 0;
    CStr Description;
    CStr Auth;
    long PosInIniFile = 0;
    CStr LoadedInIniFile;
    long AddInIcon = 0;
    CStr RunningInIniFile;
    CStr BufString;

    AddInName = FileDir(&((CStr) Dirs[DIR_ADDINS] + (CStr) "\\*.dll"));
    LocalAddInsFiles.Erase();
    while(AddInName.Len() != 0)
    {
        BufString = Dirs[DIR_ADDINS] + (CStr) "\\" + (CStr) AddInName;
        AddInLib = LoadLibrary(BufString.Get_String());
        if(AddInLib != 0)
        {
            AddInDesc = GetProcAddress(AddInLib, "AddInDescription");
            AddInAuth = GetProcAddress(AddInLib, "AddInAuthor");
            AddInLoad = GetProcAddress(AddInLib, "AddInLoad");
            AddInUnload = GetProcAddress(AddInLib, "AddInUnLoad");
            AddInMenu = GetProcAddress(AddInLib, "AddInMenu");
            // Must have all procedures
            if(AddInDesc != 0 && AddInAuth != 0 && AddInLoad != 0 && AddInUnload != 0 && AddInMenu != 0)
            {
                Description = GetDLLDescription(AddInName, AddInDesc);
                Auth = GetDLLAuthor(AddInAuth);
                AddInIcon = ICON_ADDINR;
                PosInIniFile = CheckAddInIniList(AddInName);
                if(PosInIniFile != -1)
                {
                    // Check if it is running if found in ini file
                    RunningInIniFile = IniReadKey("AddIns", "Running" + (CStr) StringNumberComplement(PosInIniFile, 3).Get_String(), MainIniFile);
                    if(_strcmpi(RunningInIniFile.Get_String(), "1") == 0) AddInIcon = ICON_ADDINS;
                }
                ListViewAddItem(FRMAddInsListView, Description, i, AddInIcon);
                ListViewSetSubItem(FRMAddInsListView, Auth, i, 1);
                // Check in the ini file if it's been already loaded
                PosInIniFile = CheckAddInIniList(AddInName);
                if(PosInIniFile != -1)
                {
                    LoadedInIniFile = IniReadKey("AddIns", "Loaded" + (CStr) StringNumberComplement(PosInIniFile, 3).Get_String(), MainIniFile);
                    if(LoadedInIniFile.Len() != 0)
                    {
                        if(_strcmpi(LoadedInIniFile.Get_String(), "1") == 0)
                        {
                            ListViewSetItemCheckbox(FRMAddInsListView, i, 1);
                        }
                        else
                        {
                            ListViewSetItemCheckbox(FRMAddInsListView, i, 0);
                        }
                    }
                    else
                    {
                        ListViewSetItemCheckbox(FRMAddInsListView, i, 0);
                    }
                }
                LocalAddInsFiles.Add(AddInName.Get_String());
                i++;
            }
            FreeLibrary(AddInLib);
            // Dlg_Filters.cpp for more infos
            #ifndef _DEBUG
                CloseHandle(AddInLib);
            #endif
        }
        AddInName = FileDir();
    }
}