mirror of
https://github.com/reactos/reactos
synced 2025-10-06 00:12:51 +02:00
Compare commits
41 Commits
master
...
0.4.15-rel
Author | SHA1 | Date | |
---|---|---|---|
|
22fb3bb2c1 | ||
|
4b28d889c4 | ||
|
08c150be74 | ||
|
dc1a4ae9ce | ||
|
079003d972 | ||
|
bd270f07f3 | ||
|
5ce3fadb81 | ||
|
8553bc117b | ||
|
4d7a107ecd | ||
|
a067bd5b5b | ||
|
aa9824a2dd | ||
|
72e3e2c01e | ||
|
5dceb67f13 | ||
|
8b6ee5e0e3 | ||
|
0a67494071 | ||
|
9ec189ac5f | ||
|
3bc6b46581 | ||
|
f483c90c3d | ||
|
7ecf8772fa | ||
|
25283a530b | ||
|
70715ff248 | ||
|
a868a66a72 | ||
|
f5055a3201 | ||
|
6a38254631 | ||
|
a070a1d4f5 | ||
|
3aa931d10b | ||
|
265550fea9 | ||
|
07e18f4b7a | ||
|
5558a5a883 | ||
|
2a2d8f9f77 | ||
|
881e9b9329 | ||
|
9de86f8796 | ||
|
85d6175995 | ||
|
1acaa988bc | ||
|
b5c1fdc1cc | ||
|
7791a36fc2 | ||
|
3780e42ff9 | ||
|
5f1fcb59e5 | ||
|
94cae279fa | ||
|
9b8bab9999 | ||
|
bceb3112fd |
3
.github/workflows/build.yml
vendored
3
.github/workflows/build.yml
vendored
@@ -15,7 +15,7 @@ jobs:
|
||||
- dllver: 0x600
|
||||
config: Release
|
||||
fail-fast: false
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Get RosBE build specifics
|
||||
id: get_rosbe_spec
|
||||
@@ -165,6 +165,7 @@ jobs:
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
with:
|
||||
arch: amd64_arm
|
||||
sdk: 10.0.22621.0 # Windows SDK 10.0.26100.0 dropped support for 32-bit ARM
|
||||
toolset: ${{matrix.toolset}}
|
||||
- name: Activate VS cmd (arm64)
|
||||
if: ${{ matrix.arch == 'arm64' }}
|
||||
|
@@ -96,7 +96,7 @@
|
||||
# Apisets
|
||||
# M: learn-more, learn_more, Mark Jansen
|
||||
# S: Maintained
|
||||
/sdk/lib/apisets/ @learn-more
|
||||
/dll/apisets/ @learn-more
|
||||
|
||||
# Application Compatibility subystem
|
||||
# M: learn-more, learn_more, Mark Jansen
|
||||
|
@@ -1015,10 +1015,16 @@ static void handle_copy_command(HWND hWnd)
|
||||
TCHAR display[MAX_CALC_SIZE];
|
||||
UINT n;
|
||||
|
||||
// Read current text from output display
|
||||
n = GetDlgItemText(hWnd, IDC_TEXT_OUTPUT, display, SIZEOF(display));
|
||||
|
||||
if (calc.base == IDC_RADIO_DEC && _tcschr(calc.buffer, _T('.')) == NULL)
|
||||
display[n - calc.sDecimal_len] = _T('\0');
|
||||
// Check if result is a true number
|
||||
if (!calc.is_nan)
|
||||
{
|
||||
// Remove trailing decimal point if no decimal digits exist
|
||||
if (calc.base == IDC_RADIO_DEC && _tcschr(calc.buffer, _T('.')) == NULL)
|
||||
display[n - calc.sDecimal_len] = _T('\0');
|
||||
}
|
||||
|
||||
CopyMemToClipboard(display);
|
||||
}
|
||||
|
@@ -18,7 +18,7 @@ Also, each [Section] is language-independent and individual, you can override th
|
||||
program or any other field by adding a language-specific [Section.], followed by the language code.
|
||||
|
||||
NOTE: You can find a complete listing of LCIDs and language names here, includes neutral codes:
|
||||
<https://msdn.microsoft.com/en-us/library/windows/desktop/dd318693%28v=vs.85%29.aspx>
|
||||
<https://learn.microsoft.com/en-us/windows/win32/intl/language-identifier-constants-and-strings>
|
||||
|
||||
Now RAPPS also accepts neutral language codes, meaning that you can do things like this:
|
||||
|
||||
|
@@ -158,7 +158,7 @@ CAppDB::EnumInstalledRootKey(UINT Index, REGSAM &RegSam)
|
||||
{
|
||||
// Loop for through all combinations.
|
||||
// Note that HKEY_CURRENT_USER\Software does not have a redirect
|
||||
// https://docs.microsoft.com/en-us/windows/win32/winprog64/shared-registry-keys#redirected-shared-and-reflected-keys-under-wow64
|
||||
// https://learn.microsoft.com/en-us/windows/win32/winprog64/shared-registry-keys#redirected-shared-and-reflected-keys-under-wow64
|
||||
if (Index < (IsSystem64Bit() ? 3 : 2))
|
||||
return GetRootKeyInfo(Index, RegSam);
|
||||
else
|
||||
|
@@ -10,6 +10,14 @@
|
||||
#include "rapps.h"
|
||||
#include "appview.h"
|
||||
|
||||
static inline AppsCategories
|
||||
ClampAvailableCategory(AppsCategories Category)
|
||||
{
|
||||
if (Category <= ENUM_LASTCATEGORY)
|
||||
return Category;
|
||||
return ENUM_CAT_OTHER; // Treat future categories we don't know as Other
|
||||
}
|
||||
|
||||
CAppInfo::CAppInfo(const CStringW &Identifier, AppsCategories Category)
|
||||
: szIdentifier(Identifier), iCategory(Category)
|
||||
{
|
||||
@@ -24,7 +32,7 @@ CAvailableApplicationInfo::CAvailableApplicationInfo(
|
||||
const CStringW &PkgName,
|
||||
AppsCategories Category,
|
||||
const CPathW &BasePath)
|
||||
: CAppInfo(PkgName, Category), m_Parser(Parser), m_ScrnshotRetrieved(false), m_LanguagesLoaded(false)
|
||||
: CAppInfo(PkgName, ClampAvailableCategory(Category)), m_Parser(Parser), m_ScrnshotRetrieved(false), m_LanguagesLoaded(false)
|
||||
{
|
||||
m_Parser->GetString(L"Name", szDisplayName);
|
||||
m_Parser->GetString(L"Version", szDisplayVersion);
|
||||
@@ -163,16 +171,16 @@ CAvailableApplicationInfo::LicenseString()
|
||||
LicenseType licenseType;
|
||||
|
||||
if (IsKnownLicenseType(IntBuffer))
|
||||
{
|
||||
licenseType = static_cast<LicenseType>(IntBuffer);
|
||||
}
|
||||
else
|
||||
{
|
||||
licenseType = LICENSE_NONE;
|
||||
|
||||
if (licenseType == LICENSE_NONE || licenseType == LICENSE_FREEWARE)
|
||||
{
|
||||
if (szLicenseString.CompareNoCase(L"Freeware") == 0)
|
||||
{
|
||||
licenseType = LICENSE_FREEWARE;
|
||||
szLicenseString = L"";
|
||||
szLicenseString = L""; // Don't display as "Freeware (Freeware)"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -588,7 +596,7 @@ CInstalledApplicationInfo::GetInstallerType() const
|
||||
BOOL
|
||||
CInstalledApplicationInfo::UninstallApplication(UninstallCommandFlags Flags)
|
||||
{
|
||||
if (GetInstallerType() == INSTALLER_GENERATE)
|
||||
if (GetInstallerType() == INSTALLER_GENERATE && (Flags & UCF_SAMEPROCESS))
|
||||
{
|
||||
return UninstallGenerated(*this, Flags);
|
||||
}
|
||||
|
@@ -16,6 +16,50 @@ using namespace Gdiplus;
|
||||
HICON g_hDefaultPackageIcon = NULL;
|
||||
static int g_DefaultPackageIconILIdx = I_IMAGENONE;
|
||||
|
||||
// **** Menu helpers ****
|
||||
|
||||
BOOL
|
||||
DeleteMenuEx(
|
||||
_In_ HMENU hMenu,
|
||||
_In_ UINT uPosition,
|
||||
_In_ UINT uFlags)
|
||||
{
|
||||
INT pos;
|
||||
MENUITEMINFOW mii = { sizeof(mii), MIIM_FTYPE, 0 };
|
||||
bool bIsValidItem1, bIsValidItem2;
|
||||
bool bIsSep1, bIsSep2;
|
||||
|
||||
if (uFlags & MF_BYPOSITION)
|
||||
pos = (INT)uPosition;
|
||||
else
|
||||
pos = ::GetMenuPosFromID(hMenu, uPosition);
|
||||
if (pos < 0)
|
||||
return FALSE;
|
||||
|
||||
bIsValidItem1 = ((pos > 0) && ::GetMenuItemInfoW(hMenu, pos - 1, TRUE, &mii));
|
||||
bIsSep1 = bIsValidItem1 && !!(mii.fType & MFT_SEPARATOR);
|
||||
|
||||
bIsValidItem2 = ::GetMenuItemInfoW(hMenu, pos + 1, TRUE, &mii);
|
||||
bIsSep2 = bIsValidItem2 && !!(mii.fType & MFT_SEPARATOR);
|
||||
|
||||
if (bIsSep1 && !bIsSep2 && !bIsValidItem2)
|
||||
pos = pos - 1; // Delete separator only if pos+1 has no item
|
||||
else if (!bIsSep1 && bIsSep2 && !bIsValidItem1)
|
||||
pos = pos + 1; // Delete separator only if pos-1 has no item
|
||||
else if (bIsSep1 && bIsSep2)
|
||||
pos = pos + 1;
|
||||
else
|
||||
pos = -1;
|
||||
|
||||
// Delete one of the separators if necessary
|
||||
if (pos != -1)
|
||||
::DeleteMenu(hMenu, pos, MF_BYPOSITION);
|
||||
|
||||
// Finally, delete the menu item itself.
|
||||
return ::DeleteMenu(hMenu, uPosition, uFlags);
|
||||
}
|
||||
// **** Menu helpers ****
|
||||
|
||||
// **** CMainToolbar ****
|
||||
|
||||
VOID
|
||||
@@ -149,26 +193,28 @@ CMainToolbar::Create(HWND hwndParent)
|
||||
|
||||
AddButtons(_countof(Buttons), Buttons);
|
||||
|
||||
/* Remember ideal width to use as a max width of buttons */
|
||||
SIZE size;
|
||||
GetIdealSize(FALSE, &size);
|
||||
m_dButtonsWidthMax = size.cx;
|
||||
/* Remember the ideal width to use as a max width of buttons */
|
||||
UpdateMaxButtonsWidth();
|
||||
|
||||
return m_hWnd;
|
||||
}
|
||||
|
||||
VOID
|
||||
CMainToolbar::HideButtonCaption()
|
||||
void
|
||||
CMainToolbar::ShowButtonCaption(bool bShow)
|
||||
{
|
||||
DWORD dCurrentExStyle = (DWORD)SendMessageW(TB_GETEXTENDEDSTYLE, 0, 0);
|
||||
SendMessageW(TB_SETEXTENDEDSTYLE, 0, dCurrentExStyle | TBSTYLE_EX_MIXEDBUTTONS);
|
||||
if (bShow)
|
||||
SendMessageW(TB_SETEXTENDEDSTYLE, 0, dCurrentExStyle & ~TBSTYLE_EX_MIXEDBUTTONS);
|
||||
else
|
||||
SendMessageW(TB_SETEXTENDEDSTYLE, 0, dCurrentExStyle | TBSTYLE_EX_MIXEDBUTTONS);
|
||||
}
|
||||
|
||||
VOID
|
||||
CMainToolbar::ShowButtonCaption()
|
||||
void
|
||||
CMainToolbar::UpdateMaxButtonsWidth()
|
||||
{
|
||||
DWORD dCurrentExStyle = (DWORD)SendMessageW(TB_GETEXTENDEDSTYLE, 0, 0);
|
||||
SendMessageW(TB_SETEXTENDEDSTYLE, 0, dCurrentExStyle & ~TBSTYLE_EX_MIXEDBUTTONS);
|
||||
SIZE size;
|
||||
GetIdealSize(FALSE, &size);
|
||||
m_dButtonsWidthMax = size.cx;
|
||||
}
|
||||
|
||||
DWORD
|
||||
@@ -267,21 +313,6 @@ CAppRichEdit::InsertTextWithString(UINT StringID, const CStringW &Text, DWORD Te
|
||||
LoadAndInsertText(StringID, Text, TextFlags);
|
||||
}
|
||||
}
|
||||
|
||||
VOID
|
||||
CAppRichEdit::SetWelcomeText()
|
||||
{
|
||||
CStringW szText;
|
||||
|
||||
szText.LoadStringW(IDS_WELCOME_TITLE);
|
||||
SetText(szText, CFE_BOLD);
|
||||
|
||||
szText.LoadStringW(IDS_WELCOME_TEXT);
|
||||
InsertText(szText, 0);
|
||||
|
||||
szText.LoadStringW(IDS_WELCOME_URL);
|
||||
InsertText(szText, CFM_LINK);
|
||||
}
|
||||
// **** CAppRichEdit ****
|
||||
|
||||
int
|
||||
@@ -924,27 +955,59 @@ CAppInfoDisplay::Create(HWND hwndParent)
|
||||
}
|
||||
|
||||
VOID
|
||||
CAppInfoDisplay::ShowAppInfo(CAppInfo *Info)
|
||||
CAppInfoDisplay::ShowAppInfo(CAppInfo &Info, bool OnlyUpdateText)
|
||||
{
|
||||
CStringW ScrnshotLocation;
|
||||
if (Info->RetrieveScreenshot(ScrnshotLocation))
|
||||
if (!OnlyUpdateText)
|
||||
{
|
||||
ScrnshotPrev->DisplayImage(ScrnshotLocation);
|
||||
CStringW ScrnshotLocation;
|
||||
if (Info.RetrieveScreenshot(ScrnshotLocation))
|
||||
{
|
||||
ScrnshotPrev->DisplayImage(ScrnshotLocation);
|
||||
}
|
||||
else
|
||||
{
|
||||
ScrnshotPrev->DisplayEmpty();
|
||||
}
|
||||
}
|
||||
ResizeChildren();
|
||||
Info.ShowAppInfo(RichEdit);
|
||||
}
|
||||
|
||||
void
|
||||
CAppInfoDisplay::SetWelcomeText(bool bAppwiz)
|
||||
{
|
||||
CStringW szText;
|
||||
|
||||
ScrnshotPrev->DisplayEmpty();
|
||||
ResizeChildren();
|
||||
|
||||
// Display the standard banner in normal mode, or
|
||||
// the specific "Add/Remove Programs" in APPWIZ-mode.
|
||||
if (!bAppwiz)
|
||||
{
|
||||
szText.LoadStringW(IDS_WELCOME_TITLE);
|
||||
RichEdit->SetText(szText, CFE_BOLD);
|
||||
RichEdit->InsertText(L"\n\n", 0);
|
||||
|
||||
szText.LoadStringW(IDS_WELCOME_TEXT);
|
||||
RichEdit->InsertText(szText, 0);
|
||||
|
||||
szText.LoadStringW(IDS_WELCOME_URL);
|
||||
RichEdit->InsertText(szText, CFM_LINK);
|
||||
}
|
||||
else
|
||||
{
|
||||
ScrnshotPrev->DisplayEmpty();
|
||||
}
|
||||
ResizeChildren();
|
||||
Info->ShowAppInfo(RichEdit);
|
||||
}
|
||||
szText.LoadStringW(IDS_APPWIZ_TITLE);
|
||||
RichEdit->SetText(szText, CFE_BOLD);
|
||||
RichEdit->InsertText(L"\n\n", 0);
|
||||
|
||||
VOID
|
||||
CAppInfoDisplay::SetWelcomeText()
|
||||
{
|
||||
ScrnshotPrev->DisplayEmpty();
|
||||
ResizeChildren();
|
||||
RichEdit->SetWelcomeText();
|
||||
szText.LoadStringW(IDS_APPWIZ_TEXT1);
|
||||
RichEdit->InsertText(szText, 0);
|
||||
RichEdit->InsertText(L"\n", 0);
|
||||
|
||||
szText.LoadStringW(IDS_APPWIZ_TEXT2);
|
||||
RichEdit->InsertText(szText, 0);
|
||||
}
|
||||
}
|
||||
|
||||
VOID
|
||||
@@ -1113,19 +1176,11 @@ CAppsListView::SetWatermark(const CStringW &Text)
|
||||
m_Watermark = Text;
|
||||
}
|
||||
|
||||
VOID
|
||||
CAppsListView::SetCheckboxesVisible(BOOL bIsVisible)
|
||||
void
|
||||
CAppsListView::ShowCheckboxes(bool bShow)
|
||||
{
|
||||
if (bIsVisible)
|
||||
{
|
||||
SetExtendedListViewStyle(LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetExtendedListViewStyle(LVS_EX_FULLROWSELECT);
|
||||
}
|
||||
|
||||
bHasCheckboxes = bIsVisible;
|
||||
SetExtendedListViewStyle((bShow ? LVS_EX_CHECKBOXES : 0) | LVS_EX_FULLROWSELECT);
|
||||
bHasCheckboxes = bShow;
|
||||
}
|
||||
|
||||
VOID
|
||||
@@ -1258,7 +1313,7 @@ CAppsListView::Create(HWND hwndParent)
|
||||
|
||||
if (hwnd)
|
||||
{
|
||||
SetCheckboxesVisible(FALSE);
|
||||
ShowCheckboxes(false);
|
||||
}
|
||||
|
||||
#pragma push_macro("SubclassWindow")
|
||||
@@ -1359,16 +1414,18 @@ CAppsListView::SetDisplayAppType(APPLICATION_VIEW_TYPE AppType)
|
||||
|
||||
/* Add columns to ListView */
|
||||
szText.LoadStringW(IDS_APP_NAME);
|
||||
AddColumn(ColumnCount++, szText, 250, LVCFMT_LEFT);
|
||||
AddColumn(ColumnCount++, szText, 368, LVCFMT_LEFT);
|
||||
|
||||
szText.LoadStringW(IDS_APP_INST_VERSION);
|
||||
AddColumn(ColumnCount++, szText, 90, LVCFMT_RIGHT);
|
||||
|
||||
#if 0 // This column is not currently useful for installed apps.
|
||||
szText.LoadStringW(IDS_APP_DESCRIPTION);
|
||||
AddColumn(ColumnCount++, szText, 300, LVCFMT_LEFT);
|
||||
#endif
|
||||
|
||||
// disable checkboxes
|
||||
SetCheckboxesVisible(FALSE);
|
||||
// Disable checkboxes
|
||||
ShowCheckboxes(false);
|
||||
break;
|
||||
|
||||
case AppViewTypeAvailableApps:
|
||||
@@ -1383,8 +1440,8 @@ CAppsListView::SetDisplayAppType(APPLICATION_VIEW_TYPE AppType)
|
||||
szText.LoadStringW(IDS_APP_DESCRIPTION);
|
||||
AddColumn(ColumnCount++, szText, 300, LVCFMT_LEFT);
|
||||
|
||||
// enable checkboxes
|
||||
SetCheckboxesVisible(TRUE);
|
||||
// Enable checkboxes
|
||||
ShowCheckboxes(true);
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -1490,6 +1547,41 @@ CApplicationView::ProcessWindowMessage(
|
||||
bSuccess &= CreateListView();
|
||||
bSuccess &= CreateAppInfoDisplay();
|
||||
|
||||
/* APPWIZ-mode: Remove the unneeded menu items and toolbar buttons */
|
||||
if (m_MainWindow->m_bAppwizMode)
|
||||
{
|
||||
HMENU hMenu;
|
||||
|
||||
/* Delete the "Settings" item in the "File" sub-menu */
|
||||
hMenu = ::GetSubMenu(m_MainWindow->GetMenu(), 0);
|
||||
DeleteMenuEx(hMenu, ID_SETTINGS, MF_BYCOMMAND);
|
||||
|
||||
/* Remove the menu items: ID_INSTALL, ID_RESETDB */
|
||||
hMenu = GetMenu();
|
||||
DeleteMenuEx(hMenu, ID_INSTALL, MF_BYCOMMAND);
|
||||
DeleteMenuEx(hMenu, ID_RESETDB, MF_BYCOMMAND);
|
||||
|
||||
/* Remove the toolbar buttons:
|
||||
* ID_INSTALL, ID_CHECK_ALL, ID_RESETDB
|
||||
* We only keep:
|
||||
* ID_UNINSTALL, ID_MODIFY, ID_REFRESH */
|
||||
TBBUTTONINFO info = { sizeof(info), 0 };
|
||||
int index;
|
||||
|
||||
index = m_Toolbar->GetButtonInfo(ID_INSTALL, &info);
|
||||
if (index >= 0) m_Toolbar->DeleteButton(index);
|
||||
|
||||
index = m_Toolbar->GetButtonInfo(ID_CHECK_ALL, &info);
|
||||
if (index >= 0) m_Toolbar->DeleteButton(index);
|
||||
|
||||
index = m_Toolbar->GetButtonInfo(ID_RESETDB, &info);
|
||||
if (index >= 0) m_Toolbar->DeleteButton(index);
|
||||
|
||||
/* Update the ideal width to use as a max width of buttons */
|
||||
m_Toolbar->UpdateMaxButtonsWidth();
|
||||
}
|
||||
|
||||
/* Resize the toolbar */
|
||||
m_Toolbar->AutoSize();
|
||||
|
||||
RECT rTop;
|
||||
@@ -1716,6 +1808,22 @@ CApplicationView::SetRedraw(BOOL bRedraw)
|
||||
m_ListView->SetRedraw(bRedraw);
|
||||
}
|
||||
|
||||
void
|
||||
CApplicationView::RefreshAvailableItem(PCWSTR PackageName)
|
||||
{
|
||||
if (ApplicationViewType != AppViewTypeAvailableApps || !PackageName)
|
||||
return;
|
||||
CAppInfo *pApp;
|
||||
for (UINT i = 0; (pApp = (CAppInfo*)m_ListView->GetItemData(i)) != NULL; ++i)
|
||||
{
|
||||
if (pApp->szIdentifier.CompareNoCase(PackageName) == 0)
|
||||
{
|
||||
RefreshDetailsPane(*pApp, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
CApplicationView::SetFocusOnSearchBar()
|
||||
{
|
||||
@@ -1728,7 +1836,7 @@ CApplicationView::OnSize(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
if (wParam == SIZE_MINIMIZED)
|
||||
return;
|
||||
|
||||
/* Size tool bar */
|
||||
/* Resize the toolbar */
|
||||
m_Toolbar->AutoSize();
|
||||
|
||||
/* Automatically hide captions */
|
||||
@@ -1737,11 +1845,11 @@ CApplicationView::OnSize(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
if (dSearchbarMargin > dToolbarTreshold)
|
||||
{
|
||||
m_Toolbar->ShowButtonCaption();
|
||||
m_Toolbar->ShowButtonCaption(true);
|
||||
}
|
||||
else if (dSearchbarMargin < dToolbarTreshold)
|
||||
{
|
||||
m_Toolbar->HideButtonCaption();
|
||||
m_Toolbar->ShowButtonCaption(false);
|
||||
}
|
||||
|
||||
RECT r = {0, 0, LOWORD(lParam), HIWORD(lParam)};
|
||||
@@ -1917,9 +2025,10 @@ CApplicationView::Create(HWND hwndParent)
|
||||
{
|
||||
RECT r = {0, 0, 0, 0};
|
||||
|
||||
HMENU menu = GetSubMenu(LoadMenuW(hInst, MAKEINTRESOURCEW(IDR_APPLICATIONMENU)), 0);
|
||||
// Pick the "Programs" sub-menu for building the context menu.
|
||||
HMENU hMenu = ::GetSubMenu(m_MainWindow->GetMenu(), 1);
|
||||
|
||||
return CWindowImpl::Create(hwndParent, r, L"", WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, 0, menu);
|
||||
return CWindowImpl::Create(hwndParent, r, L"", WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, 0, hMenu);
|
||||
}
|
||||
|
||||
BOOL
|
||||
@@ -1930,32 +2039,41 @@ CApplicationView::SetDisplayAppType(APPLICATION_VIEW_TYPE AppType)
|
||||
return FALSE;
|
||||
}
|
||||
ApplicationViewType = AppType;
|
||||
m_AppsInfo->SetWelcomeText();
|
||||
m_AppsInfo->SetWelcomeText(m_MainWindow->m_bAppwizMode);
|
||||
|
||||
HMENU hMenu = ::GetMenu(m_hWnd);
|
||||
switch (AppType)
|
||||
{
|
||||
case AppViewTypeInstalledApps:
|
||||
EnableMenuItem(hMenu, ID_REGREMOVE, MF_ENABLED);
|
||||
{
|
||||
EnableMenuItem(hMenu, ID_INSTALL, MF_GRAYED);
|
||||
EnableMenuItem(hMenu, ID_UNINSTALL, MF_ENABLED);
|
||||
EnableMenuItem(hMenu, ID_MODIFY, MF_ENABLED);
|
||||
EnableMenuItem(hMenu, ID_REGREMOVE, MF_ENABLED);
|
||||
|
||||
m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_INSTALL, FALSE);
|
||||
m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_UNINSTALL, TRUE);
|
||||
m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_MODIFY, TRUE);
|
||||
m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_CHECK_ALL, FALSE);
|
||||
break;
|
||||
}
|
||||
|
||||
case AppViewTypeAvailableApps:
|
||||
EnableMenuItem(hMenu, ID_REGREMOVE, MF_GRAYED);
|
||||
{
|
||||
// We shouldn't get there in APPWIZ-mode.
|
||||
ATLASSERT(!m_MainWindow->m_bAppwizMode);
|
||||
|
||||
EnableMenuItem(hMenu, ID_INSTALL, MF_ENABLED);
|
||||
EnableMenuItem(hMenu, ID_UNINSTALL, MF_GRAYED);
|
||||
EnableMenuItem(hMenu, ID_MODIFY, MF_GRAYED);
|
||||
EnableMenuItem(hMenu, ID_REGREMOVE, MF_GRAYED);
|
||||
|
||||
m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_INSTALL, TRUE);
|
||||
m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_UNINSTALL, FALSE);
|
||||
m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_MODIFY, FALSE);
|
||||
m_Toolbar->SendMessageW(TB_ENABLEBUTTON, ID_CHECK_ALL, TRUE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
@@ -2035,6 +2153,12 @@ CApplicationView::RestoreListSelection(const RESTORELISTSELECTION &Restore)
|
||||
}
|
||||
}
|
||||
|
||||
VOID
|
||||
CApplicationView::RefreshDetailsPane(CAppInfo &Info, bool OnlyUpdateText)
|
||||
{
|
||||
m_AppsInfo->ShowAppInfo(Info, OnlyUpdateText);
|
||||
}
|
||||
|
||||
// this function is called when a item of listview get focus.
|
||||
// CallbackParam is the param passed to listview when adding the item (the one getting focus now).
|
||||
VOID
|
||||
@@ -2043,7 +2167,7 @@ CApplicationView::ItemGetFocus(LPVOID CallbackParam)
|
||||
if (CallbackParam)
|
||||
{
|
||||
CAppInfo *Info = static_cast<CAppInfo *>(CallbackParam);
|
||||
m_AppsInfo->ShowAppInfo(Info);
|
||||
RefreshDetailsPane(*Info);
|
||||
|
||||
if (ApplicationViewType == AppViewTypeInstalledApps)
|
||||
{
|
||||
|
@@ -28,6 +28,7 @@ extern "C" {
|
||||
|
||||
#define REGPATH_UNINSTALL L"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall"
|
||||
|
||||
#define DB_NONE L"!" // Skip/Ignore
|
||||
#define DB_GENINST_FILES L"Files"
|
||||
#define DB_GENINST_DIR L"Dir"
|
||||
#define DB_GENINST_ICON L"Icon"
|
||||
@@ -230,6 +231,8 @@ GetCustomIconPath(InstallInfo &Info, CStringW &Path)
|
||||
{
|
||||
if (*GetGenerateString(DB_GENINST_ICON, Path))
|
||||
{
|
||||
if (Path.Compare(DB_NONE) == 0)
|
||||
return HRESULT_FROM_WIN32(ERROR_CAN_NOT_COMPLETE);
|
||||
Path = BuildPath(Info.InstallDir, Path);
|
||||
int idx = PathParseIconLocation(Path.GetBuffer());
|
||||
Path.ReleaseBuffer();
|
||||
@@ -306,6 +309,9 @@ CreateShortcut(const CStringW &Target)
|
||||
{
|
||||
if (SUCCEEDED(hr = link->SetPath(Target)))
|
||||
{
|
||||
SplitFileAndDirectory(Target, &tmp);
|
||||
link->SetWorkingDirectory(tmp);
|
||||
|
||||
if (SUCCEEDED(GetCustomIconPath(Info, tmp)))
|
||||
{
|
||||
LPWSTR p = tmp.GetBuffer();
|
||||
@@ -432,7 +438,7 @@ ExtractAndInstallThread(LPVOID Parameter)
|
||||
{
|
||||
const BOOL PerUserModeDefault = TRUE;
|
||||
InstallInfo &Info = *static_cast<InstallInfo *>(g_pInfo);
|
||||
LPCWSTR AppName = Info.AppName, Archive = Info.ArchivePath, None = L"!";
|
||||
LPCWSTR AppName = Info.AppName, Archive = Info.ArchivePath, None = DB_NONE;
|
||||
CStringW installdir, tempdir, files, shortcut, tmp;
|
||||
HRESULT hr;
|
||||
CRegKey arpkey;
|
||||
@@ -534,9 +540,9 @@ ExtractAndInstallThread(LPVOID Parameter)
|
||||
(tmp = tmp.Mid(0, cch)).AppendFormat(unparamsfmt, L" /S", modechar, bitness, arpkeyname);
|
||||
WriteArpEntry(L"QuietUninstallString", tmp);
|
||||
|
||||
if (GetCustomIconPath(Info, tmp) != S_OK)
|
||||
tmp = Info.MainApp;
|
||||
WriteArpEntry(L"DisplayIcon", tmp);
|
||||
hr = GetCustomIconPath(Info, tmp);
|
||||
if (hr != HRESULT_FROM_WIN32(ERROR_CAN_NOT_COMPLETE))
|
||||
WriteArpEntry(L"DisplayIcon", hr == S_OK ? tmp : Info.MainApp);
|
||||
|
||||
if (*GetCommonString(DB_VERSION, tmp))
|
||||
WriteArpEntry(L"DisplayVersion", tmp);
|
||||
|
@@ -81,8 +81,10 @@ CSideTreeView::~CSideTreeView()
|
||||
// **** CSideTreeView ****
|
||||
|
||||
// **** CMainWindow ****
|
||||
HWND CMainWindow::m_hLastFocus = NULL;
|
||||
bool CMainWindow::m_PendingInstalledViewRefresh = false;
|
||||
|
||||
CMainWindow::CMainWindow(CAppDB *db, BOOL bAppwiz) : m_ClientPanel(NULL), m_Db(db), bAppwizMode(bAppwiz), SelectedEnumType(ENUM_ALL_INSTALLED)
|
||||
CMainWindow::CMainWindow(CAppDB *db, BOOL bAppwiz) : m_ClientPanel(NULL), m_Db(db), m_bAppwizMode(bAppwiz), SelectedEnumType(ENUM_ALL_INSTALLED)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -100,6 +102,10 @@ CMainWindow::InitCategoriesList()
|
||||
m_TreeView->AddCategory(hRootItemInstalled, IDS_APPLICATIONS, IDI_APPS);
|
||||
m_TreeView->AddCategory(hRootItemInstalled, IDS_UPDATES, IDI_APPUPD);
|
||||
|
||||
// Do not show any other categories in APPWIZ-mode.
|
||||
if (m_bAppwizMode)
|
||||
goto Finish;
|
||||
|
||||
m_TreeView->AddCategory(TVI_ROOT, IDS_SELECTEDFORINST, IDI_SELECTEDFORINST);
|
||||
|
||||
hRootItemAvailable = m_TreeView->AddCategory(TVI_ROOT, IDS_AVAILABLEFORINST, IDI_CATEGORY);
|
||||
@@ -120,10 +126,12 @@ CMainWindow::InitCategoriesList()
|
||||
m_TreeView->AddCategory(hRootItemAvailable, IDS_CAT_THEMES, IDI_CAT_THEMES);
|
||||
m_TreeView->AddCategory(hRootItemAvailable, IDS_CAT_OTHER, IDI_CAT_OTHER);
|
||||
|
||||
Finish:
|
||||
m_TreeView->SetImageList();
|
||||
m_TreeView->Expand(hRootItemInstalled, TVE_EXPAND);
|
||||
m_TreeView->Expand(hRootItemAvailable, TVE_EXPAND);
|
||||
m_TreeView->SelectItem(bAppwizMode ? hRootItemInstalled : hRootItemAvailable);
|
||||
if (!m_bAppwizMode)
|
||||
m_TreeView->Expand(hRootItemAvailable, TVE_EXPAND);
|
||||
m_TreeView->SelectItem(m_bAppwizMode ? hRootItemInstalled : hRootItemAvailable);
|
||||
}
|
||||
|
||||
BOOL
|
||||
@@ -298,6 +306,7 @@ CMainWindow::CheckAvailable()
|
||||
{
|
||||
if (m_Db->GetAvailableCount() == 0)
|
||||
{
|
||||
CUpdateDatabaseMutex lock;
|
||||
m_Db->RemoveCached();
|
||||
m_Db->UpdateAvailable();
|
||||
}
|
||||
@@ -312,13 +321,13 @@ CMainWindow::ProcessWindowMessage(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lPa
|
||||
case WM_CREATE:
|
||||
if (!InitControls())
|
||||
::PostMessageW(hwnd, WM_CLOSE, 0, 0);
|
||||
::PostMessageW(hwnd, DM_REPOSITION, 0, 0);
|
||||
break;
|
||||
|
||||
case WM_DESTROY:
|
||||
{
|
||||
ShowWindow(SW_HIDE);
|
||||
hMainWnd = NULL;
|
||||
SaveSettings(hwnd, &SettingsInfo);
|
||||
|
||||
FreeLogs();
|
||||
|
||||
delete m_ClientPanel;
|
||||
@@ -327,6 +336,41 @@ CMainWindow::ProcessWindowMessage(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lPa
|
||||
return 0;
|
||||
}
|
||||
|
||||
case WM_CLOSE:
|
||||
ShowWindow(SW_HIDE);
|
||||
return g_Busy;
|
||||
|
||||
case WM_NOTIFY_OPERATIONCOMPLETED:
|
||||
if (!g_Busy && !IsWindowVisible())
|
||||
SendMessage(WM_CLOSE, 0, 0);
|
||||
break;
|
||||
|
||||
case WM_NOTIFY_INSTALLERFINISHED:
|
||||
m_PendingInstalledViewRefresh = true; // Something just installed, our uninstall list is probably outdated
|
||||
m_ApplicationView->RefreshAvailableItem((PCWSTR)lParam);
|
||||
break;
|
||||
|
||||
case DM_REPOSITION:
|
||||
EmulateDialogReposition(hwnd); // We are not a real dialog, we need help from a real one
|
||||
break;
|
||||
|
||||
case WM_ACTIVATE:
|
||||
if (LOWORD(wParam) == WA_INACTIVE)
|
||||
m_hLastFocus = ::GetFocus();
|
||||
break;
|
||||
|
||||
case WM_SETFOCUS:
|
||||
if (m_hLastFocus)
|
||||
::SetFocus(m_hLastFocus);
|
||||
break;
|
||||
|
||||
case WM_NEXTDLGCTL:
|
||||
if (!LOWORD(lParam))
|
||||
HandleTabOrder(wParam ? -1 : 1);
|
||||
else if (wParam)
|
||||
::SetFocus((HWND)wParam);
|
||||
break;
|
||||
|
||||
case WM_COMMAND:
|
||||
OnCommand(wParam, lParam);
|
||||
break;
|
||||
@@ -337,6 +381,22 @@ CMainWindow::ProcessWindowMessage(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lPa
|
||||
|
||||
switch (data->code)
|
||||
{
|
||||
case TVN_ITEMEXPANDING:
|
||||
{
|
||||
if (data->hwndFrom == m_TreeView->m_hWnd)
|
||||
{
|
||||
// APPWIZ-mode: forbid item collapse.
|
||||
// FIXME: Prevent collapse (COMCTL32 is buggy)
|
||||
// https://bugs.winehq.org/show_bug.cgi?id=53727
|
||||
if (m_bAppwizMode && (((LPNMTREEVIEW)lParam)->action & TVE_TOGGLE) == TVE_COLLAPSE)
|
||||
{
|
||||
theResult = TRUE;
|
||||
return TRUE; // Handled
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case TVN_SELCHANGED:
|
||||
{
|
||||
if (data->hwndFrom == m_TreeView->m_hWnd)
|
||||
@@ -556,9 +616,12 @@ CMainWindow::OnCommand(WPARAM wParam, LPARAM lParam)
|
||||
break;
|
||||
|
||||
case ID_RESETDB:
|
||||
{
|
||||
CUpdateDatabaseMutex lock;
|
||||
m_Db->RemoveCached();
|
||||
UpdateApplicationsList(SelectedEnumType, bReload);
|
||||
break;
|
||||
}
|
||||
|
||||
case ID_HELP:
|
||||
MessageBoxW(L"Help not implemented yet", NULL, MB_OK);
|
||||
@@ -586,8 +649,16 @@ CMainWindow::UpdateStatusBarText()
|
||||
if (m_StatusBar)
|
||||
{
|
||||
CStringW szBuffer;
|
||||
szBuffer.Format(IDS_APPS_COUNT, m_ApplicationView->GetItemCount());
|
||||
|
||||
// Append the number of selected apps if not in APPWIZ-mode.
|
||||
if (!m_bAppwizMode)
|
||||
{
|
||||
CStringW szBuffer2;
|
||||
szBuffer2.Format(IDS_APPS_SELECT_COUNT, m_Selected.GetCount());
|
||||
szBuffer += szBuffer2;
|
||||
}
|
||||
|
||||
szBuffer.Format(IDS_APPS_COUNT, m_ApplicationView->GetItemCount(), m_Selected.GetCount());
|
||||
m_StatusBar->SetText(szBuffer);
|
||||
}
|
||||
}
|
||||
@@ -612,6 +683,13 @@ CMainWindow::AddApplicationsToView(CAtlList<CAppInfo *> &List)
|
||||
VOID
|
||||
CMainWindow::UpdateApplicationsList(AppsCategories EnumType, BOOL bReload, BOOL bCheckAvailable)
|
||||
{
|
||||
// Only installed applications should be enumerated in APPWIZ-mode.
|
||||
if (m_bAppwizMode && !IsInstalledEnum(EnumType))
|
||||
{
|
||||
ATLASSERT(FALSE && "Should not be called in APPWIZ-mode");
|
||||
return;
|
||||
}
|
||||
|
||||
bUpdating = TRUE;
|
||||
|
||||
if (HCURSOR hCursor = LoadCursor(NULL, IDC_APPSTARTING))
|
||||
@@ -624,6 +702,12 @@ CMainWindow::UpdateApplicationsList(AppsCategories EnumType, BOOL bReload, BOOL
|
||||
if (bCheckAvailable)
|
||||
CheckAvailable();
|
||||
|
||||
if (m_PendingInstalledViewRefresh && IsInstalledEnum(EnumType) && !IsInstalledEnum(SelectedEnumType))
|
||||
{
|
||||
m_PendingInstalledViewRefresh = FALSE;
|
||||
bReload = TRUE; // Reload because we are switching from Available to Installed after something installed
|
||||
}
|
||||
|
||||
BOOL TryRestoreSelection = SelectedEnumType == EnumType;
|
||||
if (SelectedEnumType != EnumType)
|
||||
SelectedEnumType = EnumType;
|
||||
@@ -650,6 +734,9 @@ CMainWindow::UpdateApplicationsList(AppsCategories EnumType, BOOL bReload, BOOL
|
||||
}
|
||||
else if (IsAvailableEnum(EnumType))
|
||||
{
|
||||
// We shouldn't get there in APPWIZ-mode.
|
||||
ATLASSERT(!m_bAppwizMode);
|
||||
|
||||
if (bReload)
|
||||
m_Db->UpdateAvailable();
|
||||
|
||||
@@ -709,8 +796,7 @@ CMainWindow::GetWndClassInfo()
|
||||
HWND
|
||||
CMainWindow::Create()
|
||||
{
|
||||
CStringW szWindowName;
|
||||
szWindowName.LoadStringW(IDS_APPTITLE);
|
||||
const CStringW szWindowName(MAKEINTRESOURCEW(m_bAppwizMode ? IDS_APPWIZ_TITLE : IDS_APPTITLE));
|
||||
|
||||
RECT r = {
|
||||
(SettingsInfo.bSaveWndPos ? SettingsInfo.Left : CW_USEDEFAULT),
|
||||
@@ -756,16 +842,7 @@ CMainWindow::ItemCheckStateChanged(BOOL bChecked, LPVOID CallbackParam)
|
||||
BOOL
|
||||
CMainWindow::InstallApplication(CAppInfo *Info)
|
||||
{
|
||||
if (Info)
|
||||
{
|
||||
if (DownloadApplication(Info))
|
||||
{
|
||||
UpdateApplicationsList(SelectedEnumType);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return Info && DownloadApplication(Info);
|
||||
}
|
||||
|
||||
BOOL
|
||||
|
@@ -41,6 +41,7 @@ enum AppsCategories
|
||||
ENUM_CAT_THEMES,
|
||||
ENUM_CAT_OTHER,
|
||||
ENUM_CAT_SELECTED,
|
||||
ENUM_LASTCATEGORY = ENUM_CAT_SELECTED - 1,
|
||||
ENUM_ALL_INSTALLED = 30,
|
||||
ENUM_INSTALLED_APPLICATIONS,
|
||||
ENUM_UPDATES,
|
||||
@@ -54,6 +55,12 @@ enum AppsCategories
|
||||
inline BOOL
|
||||
IsAvailableEnum(INT x)
|
||||
{
|
||||
C_ASSERT(ENUM_CAT_AUDIO == 1 && ENUM_CAT_THEMES == 15 && ENUM_CAT_OTHER == 16);
|
||||
C_ASSERT(ENUM_LASTCATEGORY >= ENUM_CAT_OTHER);
|
||||
C_ASSERT(ENUM_LASTCATEGORY < ENUM_CAT_SELECTED);
|
||||
C_ASSERT(ENUM_LASTCATEGORY < ENUM_INSTALLED_MIN);
|
||||
C_ASSERT(ENUM_CAT_SELECTED < ENUM_INSTALLED_MIN);
|
||||
|
||||
return (x >= ENUM_AVAILABLE_MIN && x <= ENUM_AVAILABLE_MAX);
|
||||
}
|
||||
|
||||
@@ -68,7 +75,9 @@ enum UninstallCommandFlags
|
||||
UCF_NONE = 0x00,
|
||||
UCF_MODIFY = 0x01,
|
||||
UCF_SILENT = 0x02,
|
||||
UCF_SAMEPROCESS = 0x04,
|
||||
};
|
||||
DEFINE_ENUM_FLAG_OPERATORS(UninstallCommandFlags);
|
||||
|
||||
enum InstallerType
|
||||
{
|
||||
@@ -82,6 +91,7 @@ enum InstallerType
|
||||
#define DB_REGNAME L"RegName"
|
||||
#define DB_INSTALLER L"Installer"
|
||||
#define DB_SCOPE L"Scope" // User or Machine
|
||||
#define DB_SAVEAS L"SaveAs"
|
||||
|
||||
#define DB_GENINSTSECTION L"Generate"
|
||||
#define GENERATE_ARPSUBKEY L"RApps" // Our uninstall data is stored here
|
||||
|
@@ -89,8 +89,6 @@ class CAppRichEdit : public CUiWindow<CRichEdit>
|
||||
LoadAndInsertText(UINT uStringID, DWORD StringFlags);
|
||||
VOID
|
||||
InsertTextWithString(UINT StringID, const CStringW &Text, DWORD TextFlags);
|
||||
VOID
|
||||
SetWelcomeText();
|
||||
};
|
||||
|
||||
int
|
||||
@@ -177,9 +175,9 @@ class CAppInfoDisplay : public CUiWindow<CWindowImpl<CAppInfoDisplay>>
|
||||
Create(HWND hwndParent);
|
||||
|
||||
VOID
|
||||
ShowAppInfo(CAppInfo *Info);
|
||||
VOID
|
||||
SetWelcomeText();
|
||||
ShowAppInfo(CAppInfo &Info, bool OnlyUpdateText = false);
|
||||
void
|
||||
SetWelcomeText(bool bAppwiz);
|
||||
VOID
|
||||
OnCommand(WPARAM wParam, LPARAM lParam);
|
||||
|
||||
@@ -195,7 +193,7 @@ class CAppsListView : public CUiWindow<CWindowImpl<CAppsListView, CListView>>
|
||||
};
|
||||
|
||||
BOOL bIsAscending = TRUE;
|
||||
BOOL bHasCheckboxes = FALSE;
|
||||
bool bHasCheckboxes = false;
|
||||
|
||||
INT ItemCount = 0;
|
||||
INT CheckedItemCount = 0;
|
||||
@@ -224,8 +222,9 @@ class CAppsListView : public CUiWindow<CWindowImpl<CAppsListView, CListView>>
|
||||
|
||||
VOID
|
||||
SetWatermark(const CStringW &Text);
|
||||
VOID
|
||||
SetCheckboxesVisible(BOOL bIsVisible);
|
||||
|
||||
void
|
||||
ShowCheckboxes(bool bShow);
|
||||
|
||||
VOID
|
||||
ColumnClick(LPNMLISTVIEW pnmv);
|
||||
@@ -293,10 +292,11 @@ class CMainToolbar : public CUiWindow<CToolbar<>>
|
||||
HWND
|
||||
Create(HWND hwndParent);
|
||||
|
||||
VOID
|
||||
HideButtonCaption();
|
||||
VOID
|
||||
ShowButtonCaption();
|
||||
void
|
||||
ShowButtonCaption(bool bShow);
|
||||
|
||||
void
|
||||
UpdateMaxButtonsWidth();
|
||||
|
||||
DWORD
|
||||
GetMaxButtonsWidth() const;
|
||||
@@ -388,6 +388,8 @@ class CApplicationView : public CUiWindow<CWindowImpl<CApplicationView>>
|
||||
void
|
||||
SetRedraw(BOOL bRedraw);
|
||||
void
|
||||
RefreshAvailableItem(PCWSTR PackageName);
|
||||
void
|
||||
SetFocusOnSearchBar();
|
||||
BOOL
|
||||
SetDisplayAppType(APPLICATION_VIEW_TYPE AppType);
|
||||
@@ -415,6 +417,9 @@ class CApplicationView : public CUiWindow<CWindowImpl<CApplicationView>>
|
||||
VOID
|
||||
RestoreListSelection(const RESTORELISTSELECTION &Restore);
|
||||
|
||||
VOID
|
||||
RefreshDetailsPane(CAppInfo &Info, bool OnlyUpdateText = false);
|
||||
|
||||
// this function is called when a item of listview get focus.
|
||||
// CallbackParam is the param passed to listview when adding the item (the one getting focus now).
|
||||
VOID
|
||||
|
@@ -52,18 +52,22 @@ class CMainWindow : public CWindowImpl<CMainWindow, CWindow, CFrameWinTraits>
|
||||
CUiWindow<CStatusBar> *m_StatusBar = NULL;
|
||||
|
||||
CApplicationView *m_ApplicationView = NULL;
|
||||
friend class CApplicationView;
|
||||
|
||||
CAppDB *m_Db;
|
||||
CAtlList<CAppInfo *> m_Selected;
|
||||
|
||||
BOOL bUpdating = FALSE;
|
||||
BOOL bAppwizMode;
|
||||
BOOL m_bAppwizMode;
|
||||
HTREEITEM hRootItemInstalled;
|
||||
|
||||
CStringW szSearchPattern;
|
||||
AppsCategories SelectedEnumType;
|
||||
|
||||
public:
|
||||
static HWND m_hLastFocus;
|
||||
static bool m_PendingInstalledViewRefresh;
|
||||
|
||||
explicit CMainWindow(CAppDB *db, BOOL bAppwiz = FALSE);
|
||||
|
||||
~CMainWindow();
|
||||
|
@@ -30,6 +30,8 @@ VOID
|
||||
CopyTextToClipboard(LPCWSTR lpszText);
|
||||
VOID
|
||||
ShowPopupMenuEx(HWND hwnd, HWND hwndOwner, UINT MenuID, UINT DefaultItem, POINT *Point = NULL);
|
||||
VOID
|
||||
EmulateDialogReposition(HWND hwnd);
|
||||
BOOL
|
||||
StartProcess(const CStringW &Path, BOOL Wait);
|
||||
BOOL
|
||||
@@ -115,3 +117,32 @@ GetProgramFilesPath(CStringW &Path, BOOL PerUser, HWND hwnd = NULL);
|
||||
template <class T> class CLocalPtr : public CHeapPtr<T, CLocalAllocator>
|
||||
{
|
||||
};
|
||||
|
||||
struct CScopedMutex
|
||||
{
|
||||
HANDLE m_hMutex;
|
||||
|
||||
CScopedMutex(LPCWSTR Name, UINT Timeout = INFINITE, BOOL InitialOwner = FALSE)
|
||||
{
|
||||
m_hMutex = CreateMutexW(NULL, InitialOwner, Name);
|
||||
if (m_hMutex && !InitialOwner)
|
||||
{
|
||||
DWORD wait = WaitForSingleObject(m_hMutex, Timeout);
|
||||
if (wait != WAIT_OBJECT_0 && wait != WAIT_ABANDONED)
|
||||
{
|
||||
CloseHandle(m_hMutex);
|
||||
m_hMutex = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
~CScopedMutex()
|
||||
{
|
||||
if (m_hMutex)
|
||||
{
|
||||
ReleaseMutex(m_hMutex);
|
||||
CloseHandle(m_hMutex);
|
||||
}
|
||||
}
|
||||
|
||||
bool Acquired() const { return m_hMutex != NULL; }
|
||||
};
|
||||
|
@@ -13,4 +13,19 @@
|
||||
#include "misc.h"
|
||||
#include "configparser.h"
|
||||
|
||||
extern LONG g_Busy;
|
||||
extern bool g_PendingInstalledViewRefresh;
|
||||
|
||||
#define WM_NOTIFY_OPERATIONCOMPLETED (WM_APP + 0)
|
||||
#define WM_NOTIFY_INSTALLERFINISHED (WM_APP + 1)
|
||||
|
||||
#define MAINWINDOWCLASSNAME L"ROSAPPMGR2"
|
||||
#define MAINWINDOWMUTEX szWindowClass
|
||||
#define UPDATEDBMUTEX ( MAINWINDOWCLASSNAME L":UpDB" )
|
||||
|
||||
struct CUpdateDatabaseMutex : public CScopedMutex
|
||||
{
|
||||
CUpdateDatabaseMutex() : CScopedMutex(UPDATEDBMUTEX, 1000 * 60 * 10, FALSE) { };
|
||||
};
|
||||
|
||||
#endif /* _RAPPS_H */
|
||||
|
@@ -67,7 +67,6 @@
|
||||
/* Menus */
|
||||
#define IDR_MAINMENU 500
|
||||
#define IDR_LINKMENU 501
|
||||
#define IDR_APPLICATIONMENU 502
|
||||
|
||||
/* Menu items */
|
||||
#define ID_EXIT 550
|
||||
@@ -88,40 +87,46 @@
|
||||
/* Messages */
|
||||
#define ID_ACTIVATE_APPWIZ 600
|
||||
|
||||
/* Strings */
|
||||
/* Banners */
|
||||
#define IDS_APPTITLE 100
|
||||
#define IDS_SEARCH_TEXT 101
|
||||
#define IDS_APPS_COUNT 102
|
||||
#define IDS_WELCOME_TITLE 103
|
||||
#define IDS_WELCOME_TEXT 104
|
||||
#define IDS_WELCOME_URL 105
|
||||
#define IDS_INSTALLED 106
|
||||
#define IDS_AVAILABLEFORINST 107
|
||||
#define IDS_UPDATES 108
|
||||
#define IDS_APPLICATIONS 109
|
||||
#define IDS_CHOOSE_FOLDER_TEXT 110
|
||||
#define IDS_CHOOSE_FOLDER_ERROR 111
|
||||
#define IDS_URL_INVALID 112
|
||||
#define IDS_APP_REG_REMOVE 113
|
||||
#define IDS_INFORMATION 114
|
||||
#define IDS_UNABLE_TO_REMOVE 115
|
||||
#define IDS_UNABLE_TO_DOWNLOAD 116
|
||||
#define IDS_UNABLE_TO_DOWNLOAD2 117
|
||||
#define IDS_UNABLE_TO_QUERY_CERT 118
|
||||
#define IDS_INTEG_CHECK_TITLE 119
|
||||
#define IDS_INTEG_CHECK_FAIL 120
|
||||
#define IDS_INTERRUPTED_DOWNLOAD 121
|
||||
#define IDS_UNABLE_TO_WRITE 122
|
||||
#define IDS_INSTALL_SELECTED 123
|
||||
#define IDS_UNABLE_TO_INSTALL 124
|
||||
#define IDS_SELECTEDFORINST 125
|
||||
#define IDS_MISMATCH_CERT_INFO 126
|
||||
#define IDS_UNABLE_PATH 127
|
||||
#define IDS_APP_AUTHORS 128
|
||||
#define IDS_APP_DISPLAY_DETAILS 129
|
||||
#define IDS_APP_DISPLAY_LIST 130
|
||||
#define IDS_APP_DISPLAY_TILE 131
|
||||
#define IDS_NO_SEARCH_RESULTS 132
|
||||
#define IDS_APP_AUTHORS 101
|
||||
#define IDS_WELCOME_TITLE 102
|
||||
#define IDS_WELCOME_TEXT 103
|
||||
#define IDS_WELCOME_URL 104
|
||||
#define IDS_APPWIZ_TITLE 105
|
||||
#define IDS_APPWIZ_TEXT1 106
|
||||
#define IDS_APPWIZ_TEXT2 107
|
||||
|
||||
/* Strings */
|
||||
#define IDS_SEARCH_TEXT 110
|
||||
#define IDS_APPS_COUNT 111
|
||||
#define IDS_APPS_SELECT_COUNT 112
|
||||
#define IDS_INSTALLED 113
|
||||
#define IDS_AVAILABLEFORINST 114
|
||||
#define IDS_UPDATES 115
|
||||
#define IDS_APPLICATIONS 116
|
||||
#define IDS_CHOOSE_FOLDER_TEXT 117
|
||||
#define IDS_CHOOSE_FOLDER_ERROR 118
|
||||
#define IDS_URL_INVALID 119
|
||||
#define IDS_APP_REG_REMOVE 120
|
||||
#define IDS_INFORMATION 121
|
||||
#define IDS_UNABLE_TO_REMOVE 122
|
||||
#define IDS_UNABLE_TO_DOWNLOAD 123
|
||||
#define IDS_UNABLE_TO_DOWNLOAD2 124
|
||||
#define IDS_UNABLE_TO_QUERY_CERT 125
|
||||
#define IDS_INTEG_CHECK_TITLE 126
|
||||
#define IDS_INTEG_CHECK_FAIL 127
|
||||
#define IDS_INTERRUPTED_DOWNLOAD 128
|
||||
#define IDS_UNABLE_TO_WRITE 129
|
||||
#define IDS_INSTALL_SELECTED 130
|
||||
#define IDS_UNABLE_TO_INSTALL 131
|
||||
#define IDS_SELECTEDFORINST 132
|
||||
#define IDS_MISMATCH_CERT_INFO 133
|
||||
#define IDS_UNABLE_PATH 134
|
||||
#define IDS_APP_DISPLAY_DETAILS 135
|
||||
#define IDS_APP_DISPLAY_LIST 136
|
||||
#define IDS_APP_DISPLAY_TILE 137
|
||||
#define IDS_NO_SEARCH_RESULTS 138
|
||||
|
||||
/* Tooltips */
|
||||
#define IDS_TOOLTIP_INSTALL 200
|
||||
|
@@ -43,22 +43,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Слагане\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Махане\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Промяна", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Пр&емахване от регистъра", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "О&пресняване\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Update Data&base\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 254, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Настройки"
|
||||
@@ -188,11 +172,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "Управителят за приложения на РеактОС"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Търсене"
|
||||
IDS_APPS_COUNT "Брой приложения: %d; Selected: %d"
|
||||
IDS_WELCOME_TITLE "Управителят на приложенията на РеактОС ви приветства"
|
||||
IDS_WELCOME_TEXT "Изберете раздел от лявата страна, след което изберете приложение за слагане или премахване.\nСтраницата на РеактОС: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Търсене…"
|
||||
IDS_APPS_COUNT "Брой приложения: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Selected: %d"
|
||||
IDS_INSTALLED "Сложено"
|
||||
IDS_AVAILABLEFORINST "Налично за слагане"
|
||||
IDS_UPDATES "Обновления"
|
||||
|
@@ -44,22 +44,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Instalovat\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Odinstalovat\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Změnit", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Odstranit z r&egistru", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Ob&novit\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Aktualizovat data&bázi\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Nastavení"
|
||||
@@ -189,11 +173,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "ReactOS Správce aplikací"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Hledat…"
|
||||
IDS_APPS_COUNT "Počet aplikací: %d; Vybráno: %d"
|
||||
IDS_WELCOME_TITLE "Vítejte v ReactOS Správci aplikací!\n\n"
|
||||
IDS_WELCOME_TITLE "Vítejte v ReactOS Správci aplikací!"
|
||||
IDS_WELCOME_TEXT "Na levé straně zvolte kategorii, pak vpravo zvolte aplikaci, která bude nainstalována nebo odinstalována.\nWebová stránka ReactOS: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Hledat…"
|
||||
IDS_APPS_COUNT "Počet aplikací: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Vybráno: %d"
|
||||
IDS_INSTALLED "Nainstalováno"
|
||||
IDS_AVAILABLEFORINST "Lze instalovat"
|
||||
IDS_UPDATES "Aktualizace"
|
||||
|
@@ -46,22 +46,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Installieren\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Deinstallieren\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "Ä&ndern", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Aus R&egistry entfernen", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Aktualisie&ren\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Daten&bank aktualisieren\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Einstellungen"
|
||||
@@ -191,11 +175,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "ReactOS-Anwendungsmanager"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Suche…"
|
||||
IDS_APPS_COUNT "Anzahl der Anwendungen: %d, ausgewählt: %d"
|
||||
IDS_WELCOME_TITLE "Willkommen im ReactOS-Anwendungsmanager!\n\n"
|
||||
IDS_WELCOME_TITLE "Willkommen im ReactOS-Anwendungsmanager!"
|
||||
IDS_WELCOME_TEXT "Wählen Sie links eine Kategorie und dann eine Anwendung um sie zu installieren oder zu deinstallieren.\nReactOS-Webseite: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Suche…"
|
||||
IDS_APPS_COUNT "Anzahl der Anwendungen: %d"
|
||||
IDS_APPS_SELECT_COUNT "; ausgewählt: %d"
|
||||
IDS_INSTALLED "Installiert"
|
||||
IDS_AVAILABLEFORINST "Zur Installation verfügbar"
|
||||
IDS_UPDATES "Aktualisierungen"
|
||||
|
@@ -46,22 +46,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Install\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Uninstall\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Modify", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "R&emove from Registry", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Refresh\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Update Data&base\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Settings"
|
||||
@@ -191,11 +175,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "ReactOS Applications Manager"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Search…"
|
||||
IDS_APPS_COUNT "Applications count: %d; Selected: %d"
|
||||
IDS_WELCOME_TITLE "Welcome to ReactOS Applications Manager!\n\n"
|
||||
IDS_WELCOME_TITLE "Welcome to ReactOS Applications Manager!"
|
||||
IDS_WELCOME_TEXT "Choose a category on the left, then choose an application to install or uninstall.\nReactOS Web Site: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Search…"
|
||||
IDS_APPS_COUNT "Applications count: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Selected: %d"
|
||||
IDS_INSTALLED "Installed"
|
||||
IDS_AVAILABLEFORINST "Available for installation"
|
||||
IDS_UPDATES "Updates"
|
||||
|
@@ -45,22 +45,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Instalar\tCtrl+Intro", ID_INSTALL
|
||||
MENUITEM "&Desinstalar\tCtrl+Supr", ID_UNINSTALL
|
||||
MENUITEM "&Modificar", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Eliminar del Registro", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Recargar\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Actualizar listado desde Internet\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Ajustes"
|
||||
@@ -190,11 +174,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "Administrador de aplicaciones de ReactOS"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Buscar…"
|
||||
IDS_APPS_COUNT "Nº de aplicaciones: %d; Selecionadas: %d"
|
||||
IDS_WELCOME_TITLE "Bienvenido al Administrador de aplicaciones de ReactOS.\n\n"
|
||||
IDS_WELCOME_TITLE "Bienvenido al Administrador de aplicaciones de ReactOS."
|
||||
IDS_WELCOME_TEXT "Seleccione una categoría a la izquierda, para más tarde seleccionar la aplicación a instalar o desinstalar.\nWeb de ReactOS: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Buscar…"
|
||||
IDS_APPS_COUNT "Nº de aplicaciones: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Selecionadas: %d"
|
||||
IDS_INSTALLED "Instaladas"
|
||||
IDS_AVAILABLEFORINST "Disponible para su instalación"
|
||||
IDS_UPDATES "Actualizaciones"
|
||||
|
@@ -43,22 +43,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Installi\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Desinstalli\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Muuda", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Eemalda registrist", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Värskenda\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Uuenda andme&baasi\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Sätted"
|
||||
@@ -188,11 +172,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "ReactOS'i Rakenduste Haldur"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Otsi…"
|
||||
IDS_APPS_COUNT "Rakenduste arv: %d; Valitud: %d"
|
||||
IDS_WELCOME_TITLE "Tere tulemast ReactOS'i Rakenduste Haldurisse!\n\n"
|
||||
IDS_WELCOME_TITLE "Tere tulemast ReactOS'i Rakenduste Haldurisse!"
|
||||
IDS_WELCOME_TEXT "Vali vasakult teema, siis vali paremalt rakendusi mida soovid installida või desinstallida.\nReactOS'i veebileht: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Otsi…"
|
||||
IDS_APPS_COUNT "Rakenduste arv: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Valitud: %d"
|
||||
IDS_INSTALLED "Installitud"
|
||||
IDS_AVAILABLEFORINST "Installimiseks saadaval"
|
||||
IDS_UPDATES "Uuendused"
|
||||
|
@@ -46,22 +46,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Installer\tCtrl+Entrée", ID_INSTALL
|
||||
MENUITEM "&Désinstaller\tCtrl+Suppr", ID_UNINSTALL
|
||||
MENUITEM "&Modifier", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Supprimer du registre", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Rafraîchir\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Mettre à jour la &base\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Configuration"
|
||||
@@ -191,11 +175,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "Gestionnaire d'applications ReactOS"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Chercher…"
|
||||
IDS_APPS_COUNT "Nombre d'applications : %d ; Sélectionnées : %d"
|
||||
IDS_WELCOME_TITLE "Bienvenue dans ReactOS Applications Manager !\n\n"
|
||||
IDS_WELCOME_TITLE "Bienvenue dans ReactOS Applications Manager !"
|
||||
IDS_WELCOME_TEXT "Choisissez une catégorie à gauche, ensuite choisissez une application à installer ou désinstaller.\nSite internet de ReactOS : "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Ajout/Suppression de programmes" // "Ajouter/Supprimer des Programmes"
|
||||
IDS_APPWIZ_TEXT1 "Choisissez ""Applications"" ou ""Mises à jour"" pour voir la liste des programmes ou des mises à jour installés sur votre système."
|
||||
IDS_APPWIZ_TEXT2 "Pour supprimer un programme, ou modifier ses composants installés, sélectionnez-le dans la liste et cliquez sur ""Désinstaller"" ou ""Modifier""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Chercher…"
|
||||
IDS_APPS_COUNT "Nombre d'applications : %d"
|
||||
IDS_APPS_SELECT_COUNT " ; Sélectionnées : %d"
|
||||
IDS_INSTALLED "Installé"
|
||||
IDS_AVAILABLEFORINST "Disponible pour installation"
|
||||
IDS_UPDATES "Mises à jour"
|
||||
@@ -274,5 +267,5 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?"
|
||||
IDS_INSTGEN_CONFIRMUNINST "Êtes-vous sûr de vouloir désinstaller %s ?"
|
||||
END
|
||||
|
@@ -45,22 +45,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "התקנה\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "הסרה\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "שינוי", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "הסרה מהרשום", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "רענן\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "עדכון מסד נתונים\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
EXSTYLE WS_EX_LAYOUTRTL
|
||||
@@ -193,11 +177,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "מנהל היישומים של ReactOS"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "חיפוש…"
|
||||
IDS_APPS_COUNT "ספירת יישומים: %d; Selected: %d"
|
||||
IDS_WELCOME_TITLE "ברוכים הבאים למנהל היישומים של ReactOS!\n\n"
|
||||
IDS_WELCOME_TITLE "ברוכים הבאים למנהל היישומים של ReactOS!"
|
||||
IDS_WELCOME_TEXT "בחר קטגוריה בצד שמאל, לאחר מכן בחר יישום להתקנה או להסרה.\nהאתר של ReactOS: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "חיפוש…"
|
||||
IDS_APPS_COUNT "ספירת יישומים: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Selected: %d"
|
||||
IDS_INSTALLED "מותקן"
|
||||
IDS_AVAILABLEFORINST "זמין להתקנה"
|
||||
IDS_UPDATES "עדכונים"
|
||||
|
@@ -43,22 +43,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "Telep&ítés\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "Eltá&volítás\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Módosítás", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Eltávolítás a registryből", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "F&rissítés\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Adat&bázis frissítése\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Beállítások"
|
||||
@@ -188,11 +172,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "ReactOS Alkalmazáskezelő"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Keresés…"
|
||||
IDS_APPS_COUNT "Alkalmazások száma: %d; Kijelölve: %d"
|
||||
IDS_WELCOME_TITLE "Üdvözöljük a ReactOS Alkalmazáskezelőben!\n\n"
|
||||
IDS_WELCOME_TITLE "Üdvözöljük a ReactOS Alkalmazáskezelőben!"
|
||||
IDS_WELCOME_TEXT "Bal oldalon válasszon kategóriát, majd válasszon egy telepíteni vagy eltávolítani kívánt alkalmazást.\nReactOS weboldal: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Keresés…"
|
||||
IDS_APPS_COUNT "Alkalmazások száma: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Kijelölve: %d"
|
||||
IDS_INSTALLED "Telepített"
|
||||
IDS_AVAILABLEFORINST "Telepíthető alkalmazások"
|
||||
IDS_UPDATES "Frissítések"
|
||||
|
@@ -43,22 +43,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Pasang\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Bongkar\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Ubah", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hapus dari R&egistri", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Sega&rkan\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Perbarui Data&base\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Pengaturan"
|
||||
@@ -188,11 +172,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "Manajer Aplikasi ReactOS"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Cari…"
|
||||
IDS_APPS_COUNT "Jumlah aplikasi: %d; Terpilih: %d"
|
||||
IDS_WELCOME_TITLE "Selamat datang di Manajer Aplikasi ReactOS!\n\n"
|
||||
IDS_WELCOME_TITLE "Selamat datang di Manajer Aplikasi ReactOS!"
|
||||
IDS_WELCOME_TEXT "pilih kategori di sisi kiri, kemudian pilih aplikasi untuk dipasang atau dibongkar.\nSitus Web ReactOS: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Cari…"
|
||||
IDS_APPS_COUNT "Jumlah aplikasi: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Terpilih: %d"
|
||||
IDS_INSTALLED "Terpasang"
|
||||
IDS_AVAILABLEFORINST "Tersedia untuk pemasangan"
|
||||
IDS_UPDATES "Pembaruan"
|
||||
|
@@ -27,7 +27,7 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Aggiorna\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Aggiorna Data&base", ID_RESETDB
|
||||
MENUITEM "Aggiorna Data&base\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
POPUP "?"
|
||||
BEGIN
|
||||
@@ -45,22 +45,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Installa\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "Rim&uovi\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Modifica", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Canc&ella dal registro", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Aggiorna\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Aggiorna Data&base\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Impostazioni"
|
||||
@@ -190,11 +174,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "ReactOS Gestione applicazioni"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Cerca…"
|
||||
IDS_APPS_COUNT "Numero applicazioni: %d; Selezionate: %d"
|
||||
IDS_WELCOME_TITLE "Benvenuto!\n\n"
|
||||
IDS_WELCOME_TITLE "Benvenuto!"
|
||||
IDS_WELCOME_TEXT "Scegliere una categoria a sinistra, poi scegliere una applicazione da installare o disinstallare.\nReactOS Web Site: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Cerca…"
|
||||
IDS_APPS_COUNT "Numero applicazioni: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Selezionate: %d"
|
||||
IDS_INSTALLED "Installato"
|
||||
IDS_AVAILABLEFORINST "Disponibile per l'installazione"
|
||||
IDS_UPDATES "Aggiornamenti"
|
||||
|
@@ -23,9 +23,9 @@ BEGIN
|
||||
MENUITEM "アンインストール(&U)\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "変更(&M)", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "レジストリから削除(&E)\tF5", ID_REGREMOVE
|
||||
MENUITEM "レジストリから削除(&E)", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "更新(&R)", ID_REFRESH
|
||||
MENUITEM "更新(&R)\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "データベースの更新(&B)\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
@@ -45,22 +45,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "インストール(&I)\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "アンインストール(&U)\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "変更(&M)", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "レジストリから削除(&E)\tF5", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "更新(&R)", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "データベースの更新(&B)\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "設定"
|
||||
@@ -190,11 +174,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "ReactOS アプリ マネージャ"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "検索..."
|
||||
IDS_APPS_COUNT "アプリ数: %d; Selected: %d"
|
||||
IDS_WELCOME_TITLE "ReactOS アプリ マネージャへようこそ!\n\n"
|
||||
IDS_WELCOME_TITLE "ReactOS アプリ マネージャへようこそ!"
|
||||
IDS_WELCOME_TEXT "左側からカテゴリを選択し、インストールまたはアンインストールするアプリを選んでください。\nReactOS ウェブ サイト: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "検索..."
|
||||
IDS_APPS_COUNT "アプリ数: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Selected: %d"
|
||||
IDS_INSTALLED "インストール済み"
|
||||
IDS_AVAILABLEFORINST "インストール可能"
|
||||
IDS_UPDATES "更新"
|
||||
|
@@ -43,22 +43,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Installere\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Avinstallere\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "E&ndre", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "R&emove from Registry", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Oppdate&r\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Update Data&base\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Settings"
|
||||
@@ -188,11 +172,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "ReactOS programbehandler"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Søk…"
|
||||
IDS_APPS_COUNT "Program oppsummering: %d; Selected: %d"
|
||||
IDS_WELCOME_TITLE "Velkommen til ReactOS programbehandler!\n\n"
|
||||
IDS_WELCOME_TITLE "Velkommen til ReactOS programbehandler!"
|
||||
IDS_WELCOME_TEXT "Velg en kategori til venstre, og velg et program for installere eller avinstallere programvaren.\nReactOS internettside: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Søk…"
|
||||
IDS_APPS_COUNT "Program oppsummering: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Selected: %d"
|
||||
IDS_INSTALLED "Installert"
|
||||
IDS_AVAILABLEFORINST "Tilgjengelig for installasjon"
|
||||
IDS_UPDATES "Oppdateringer"
|
||||
|
@@ -45,22 +45,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Instaluj\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "Odinstal&uj\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Modyfikuj", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Usuń z r&ejestru", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Odśwież\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Aktualizuj &bazę programów\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Ustawienia"
|
||||
@@ -190,11 +174,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "Menedżer aplikacji ReactOS"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Szukaj…"
|
||||
IDS_APPS_COUNT "Liczba aplikacji: %d; Wybranych: %d"
|
||||
IDS_WELCOME_TITLE "Witamy w Menedżerze aplikacji ReactOS!\n\n"
|
||||
IDS_WELCOME_TITLE "Witamy w Menedżerze aplikacji ReactOS!"
|
||||
IDS_WELCOME_TEXT "Z listy po lewej wybierz kategorię, a następnie aplikację, by ją zainstalować lub odinstalować.\nStrona projektu ReactOS: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Szukaj…"
|
||||
IDS_APPS_COUNT "Liczba aplikacji: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Wybranych: %d"
|
||||
IDS_INSTALLED "Zainstalowane"
|
||||
IDS_AVAILABLEFORINST "Dostępne"
|
||||
IDS_UPDATES "Uaktualnienia"
|
||||
|
@@ -17,7 +17,7 @@ BEGIN
|
||||
END
|
||||
POPUP "&Programas"
|
||||
BEGIN
|
||||
MENUITEM "I&nstalar\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Instalar\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Desinstalar\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Modificar", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
@@ -43,22 +43,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Instalar\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Desinstalar\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Modificar", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "R&emover do Registro", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Atualiza&r\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Update Data&base\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Configurações"
|
||||
@@ -188,11 +172,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "Central de Aplicativos ReactOS"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Procurar…"
|
||||
IDS_APPS_COUNT "Número de aplicativos: %d; Selected: %d"
|
||||
IDS_WELCOME_TITLE "Bem-vindo(a) a Central de Aplicativos ReactOS!\n\n"
|
||||
IDS_WELCOME_TITLE "Bem-vindo(a) a Central de Aplicativos ReactOS!"
|
||||
IDS_WELCOME_TEXT "Escolha uma categoria à esquerda, então escolha um aplicativo para instalar ou desinstalar.\nWeb Site ReactOS: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Procurar…"
|
||||
IDS_APPS_COUNT "Número de aplicativos: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Selected: %d"
|
||||
IDS_INSTALLED "Instalado"
|
||||
IDS_AVAILABLEFORINST "Disponível para instalação"
|
||||
IDS_UPDATES "Atualizações"
|
||||
|
@@ -43,22 +43,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Instalar\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Desinstalar\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Modificar", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "R&emover do Registo", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Actualiza&r\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Actualizar &Base de dados\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Configurações"
|
||||
@@ -188,11 +172,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "Central de aplicações ReactOS"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Procurar…"
|
||||
IDS_APPS_COUNT "Número de aplicações: %d; Seleccionadas: %d"
|
||||
IDS_WELCOME_TITLE "Bem-vindo(a) à Central de aplicações ReactOS!\n\n"
|
||||
IDS_WELCOME_TITLE "Bem-vindo(a) à Central de aplicações ReactOS!"
|
||||
IDS_WELCOME_TEXT "Escolha uma categoria à esquerda, de seguida escolha uma aplicação para instalar ou desinstalar.\nWeb Site ReactOS: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Procurar…"
|
||||
IDS_APPS_COUNT "Número de aplicações: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Seleccionadas: %d"
|
||||
IDS_INSTALLED "Instalado"
|
||||
IDS_AVAILABLEFORINST "Disponível para instalação"
|
||||
IDS_UPDATES "Actualizações"
|
||||
|
@@ -27,7 +27,7 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Împ&rospătare\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Actualizare baza de date\tCtrl+F5", ID_RESETDB
|
||||
MENUITEM "&Actualizare a bazei de date\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
POPUP "Aj&utor"
|
||||
BEGIN
|
||||
@@ -45,22 +45,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Instalare\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Dezinstalare\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Modificare", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Eliminare din registru", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Împ&rospătare\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Actualizare a bazei de date\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Setări"
|
||||
@@ -190,11 +174,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "Managerul de aplicații ReactOS"
|
||||
IDS_APP_AUTHORS "Marcă înregistrată 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Căutare…"
|
||||
IDS_APPS_COUNT "Numărul de programe: %d; Selectate: %d"
|
||||
IDS_WELCOME_TITLE "Bun venit la Managerul de aplicații ReactOS!\n\n"
|
||||
IDS_WELCOME_TITLE "Bun venit la Managerul de aplicații ReactOS!"
|
||||
IDS_WELCOME_TEXT "Alegeți o categorie din stânga, apoi alegeți o aplicație pentru a o instala sau dezinstala.\nArdesa web ReactOS: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Adăugare/Eliminare de programe"
|
||||
IDS_APPWIZ_TEXT1 "Alegeți ""Aplicații"" sau ""Actualizări"" pentru a vedea lista aplicațiilor sau a actualizărilor instalate pe sistem."
|
||||
IDS_APPWIZ_TEXT2 "Pentru a elimina un program sau pentru a-i modifica componentele instalate, selectați-l din listă și faceți clic pe ""Dezinstalare"" sau pe ""Modificare""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Căutare…"
|
||||
IDS_APPS_COUNT "Numărul de programe: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Selectate: %d"
|
||||
IDS_INSTALLED "Instalate"
|
||||
IDS_AVAILABLEFORINST "Disponibile pentru instalare"
|
||||
IDS_UPDATES "Actualizări"
|
||||
@@ -254,9 +247,9 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_DL_DIALOG_DB_DISP "Aplicații baza de date"
|
||||
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Actualizare bază de date…"
|
||||
IDS_DL_DIALOG_DB_UNOFFICIAL_DOWNLOAD_DISP "Actualizare bază de date… (Sursă neoficială)"
|
||||
IDS_DL_DIALOG_DB_DISP "Aplicații pentru baza de date"
|
||||
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Actualizare a bazei de date…"
|
||||
IDS_DL_DIALOG_DB_UNOFFICIAL_DOWNLOAD_DISP "Actualizare a bazei de date… (Sursă neoficială)"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
@@ -268,7 +261,7 @@ BEGIN
|
||||
IDS_CMD_INVALID_OPTION "Eroare: opțiunea de linie de comandă specificată este necunoscută sau nevalidă.\n"
|
||||
IDS_CMD_FIND_RESULT_FOR "Rezultatele căutării pentru %1:\n"
|
||||
IDS_CMD_PACKAGE_NOT_FOUND "Nu se poate găsi pachetul %1.\n"
|
||||
IDS_CMD_PACKAGE_INFO "Informații despre pachet %1:\n"
|
||||
IDS_CMD_PACKAGE_INFO "Informații despre pachetul %1:\n"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
|
@@ -48,22 +48,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "У&становить\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Удалить\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Изменить", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "У&далить из реестра", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Обновить\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Обновить &базу данных\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Параметры"
|
||||
@@ -193,11 +177,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "Менеджер приложений ReactOS"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Поиск…"
|
||||
IDS_APPS_COUNT "Количество приложений: %d; Выбрано: %d"
|
||||
IDS_WELCOME_TITLE "Добро пожаловать в ""Менеджер приложений ReactOS""!\n\n"
|
||||
IDS_WELCOME_TITLE "Добро пожаловать в ""Менеджер приложений ReactOS""!"
|
||||
IDS_WELCOME_TEXT "Выберите категорию слева и приложение для установки или удаления.\nСайт ReactOS: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Поиск…"
|
||||
IDS_APPS_COUNT "Количество приложений: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Выбрано: %d"
|
||||
IDS_INSTALLED "Установленные"
|
||||
IDS_AVAILABLEFORINST "Доступно для установки"
|
||||
IDS_UPDATES "Обновления"
|
||||
|
@@ -2,7 +2,8 @@
|
||||
* PROJECT: ReactOS Applications Manager
|
||||
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
|
||||
* PURPOSE: Slovak resource file
|
||||
* TRANSLATOR: Copyright 2009-2010 Mário Kačmár <kario@szm.sk>
|
||||
* TRANSLATORS: Copyright 2009-2010 Mário Kačmár <kario@szm.sk>
|
||||
* Copyright 2024 Václav Zouzalík (Venca24) <vaclav.zouzalik@seznam.cz>
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
|
||||
@@ -25,12 +26,12 @@ BEGIN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Obnoviť\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Update Data&base\tCtrl+F5", ID_RESETDB
|
||||
MENUITEM "Aktualizovať data&bázu\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
POPUP "Pomocník"
|
||||
BEGIN
|
||||
MENUITEM "Pomocník\tF1", ID_HELP, GRAYED
|
||||
MENUITEM "Čo je", ID_ABOUT
|
||||
MENUITEM "O programe", ID_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
@@ -38,24 +39,8 @@ IDR_LINKMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Otvoriť linku v prehliadači", ID_OPEN_LINK
|
||||
MENUITEM "&Kopírovať linku do schránky", ID_COPY_LINK
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Inštalovať\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "O&dinštalovať\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "Z&meniť", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Odstrániť z R&egistrov", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Obnoviť\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Update Data&base\tCtrl+F5", ID_RESETDB
|
||||
MENUITEM "&Otvoriť odkaz v prehliadači", ID_OPEN_LINK
|
||||
MENUITEM "&Kopírovať odkaz do schránky", ID_COPY_LINK
|
||||
END
|
||||
END
|
||||
|
||||
@@ -73,16 +58,16 @@ BEGIN
|
||||
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP | ES_AUTOHSCROLL
|
||||
PUSHBUTTON "&Vybrať", IDC_CHOOSE, 187, 85, 50, 14
|
||||
AUTOCHECKBOX "&Zmazať inštalačné programy po nainštalovaní", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12
|
||||
GROUPBOX "Software source", -1, 4, 118, 240, 46
|
||||
AUTORADIOBUTTON "Use default", IDC_SOURCE_DEFAULT, 15, 132, 74, 10, WS_GROUP | WS_TABSTOP
|
||||
AUTORADIOBUTTON "Specified source", IDC_USE_SOURCE, 15, 147, 74, 10
|
||||
GROUPBOX "Zdroj softvéru", -1, 4, 118, 240, 46
|
||||
AUTORADIOBUTTON "Použiť predvolené", IDC_SOURCE_DEFAULT, 15, 132, 74, 10, WS_GROUP | WS_TABSTOP
|
||||
AUTORADIOBUTTON "Vlastný zdroj", IDC_USE_SOURCE, 15, 147, 74, 10
|
||||
EDITTEXT IDC_SOURCE_URL, 97, 147, 140, 12, ES_AUTOHSCROLL | WS_DISABLED
|
||||
GROUPBOX "Proxy", -1, 4, 166, 240, 76
|
||||
AUTORADIOBUTTON "System proxy settings", IDC_PROXY_DEFAULT, 15, 180, 210, 10, WS_GROUP | WS_TABSTOP
|
||||
AUTORADIOBUTTON "Direct (No proxy)", IDC_NO_PROXY, 15, 195, 210, 10
|
||||
AUTORADIOBUTTON "Systémové nastavenia proxy", IDC_PROXY_DEFAULT, 15, 180, 210, 10, WS_GROUP | WS_TABSTOP
|
||||
AUTORADIOBUTTON "Bez proxy servera", IDC_NO_PROXY, 15, 195, 210, 10
|
||||
AUTORADIOBUTTON "Proxy", IDC_USE_PROXY, 15, 210, 74, 10
|
||||
EDITTEXT IDC_PROXY_SERVER, 90, 210, 147, 12, ES_AUTOHSCROLL | WS_DISABLED
|
||||
LTEXT "No proxy for", -1, 26, 226, 64, 10
|
||||
LTEXT "Žiadna proxy pre", -1, 26, 226, 64, 10
|
||||
EDITTEXT IDC_NO_PROXY_FOR, 90, 225, 147, 12, ES_AUTOHSCROLL | WS_DISABLED
|
||||
PUSHBUTTON "Predvolené", IDC_DEFAULT_SETTINGS, 8, 245, 60, 14, WS_GROUP | WS_TABSTOP
|
||||
DEFPUSHBUTTON "OK", IDOK, 116, 245, 60, 14
|
||||
@@ -116,10 +101,10 @@ BEGIN
|
||||
IDS_TOOLTIP_INSTALL "Inštalovať"
|
||||
IDS_TOOLTIP_UNINSTALL "Odinštalovať"
|
||||
IDS_TOOLTIP_MODIFY "Zmeniť"
|
||||
IDS_TOOLTIP_SELECT_ALL "Select/Deselect All"
|
||||
IDS_TOOLTIP_SELECT_ALL "Vybrať všetky/Zrušiť výber"
|
||||
IDS_TOOLTIP_SETTINGS "Nastavenia"
|
||||
IDS_TOOLTIP_REFRESH "Obnoviť"
|
||||
IDS_TOOLTIP_UPDATE_DB "Update Database"
|
||||
IDS_TOOLTIP_UPDATE_DB "Aktualizovať databázu"
|
||||
IDS_TOOLTIP_EXIT "Skončiť"
|
||||
END
|
||||
|
||||
@@ -135,102 +120,111 @@ BEGIN
|
||||
IDS_INFO_VERSION "\nVerzia: "
|
||||
IDS_INFO_DESCRIPTION "\nPopis: "
|
||||
IDS_INFO_PUBLISHER "\nVydavateľ: "
|
||||
IDS_INFO_HELPLINK "\nHelp Link: "
|
||||
IDS_INFO_HELPPHONE "\nHelp Telephone: "
|
||||
IDS_INFO_README "\nČítajMa: "
|
||||
IDS_INFO_HELPLINK "\nInternetová pomoc: "
|
||||
IDS_INFO_HELPPHONE "\nTelefonická pomoc: "
|
||||
IDS_INFO_README "\nReadme: "
|
||||
IDS_INFO_REGOWNER "\nRegistrovaný vlastník: "
|
||||
IDS_INFO_PRODUCTID "\nID Produktu: "
|
||||
IDS_INFO_CONTACT "\nKontakt: "
|
||||
IDS_INFO_UPDATEINFO "\nUpdate Information: "
|
||||
IDS_INFO_INFOABOUT "\nInformation About: "
|
||||
IDS_INFO_COMMENTS "\nComments: "
|
||||
IDS_INFO_INSTLOCATION "\nInstall Location: "
|
||||
IDS_INFO_INSTALLSRC "\nInstall Source: "
|
||||
IDS_INFO_UNINSTALLSTR "\nUninstall String: "
|
||||
IDS_INFO_UPDATEINFO "\nInformácie o aktualizáciach: "
|
||||
IDS_INFO_INFOABOUT "\nInformácie o programe: "
|
||||
IDS_INFO_COMMENTS "\nKomentáre: "
|
||||
IDS_INFO_INSTLOCATION "\nUmiestnenie inštalácie: "
|
||||
IDS_INFO_INSTALLSRC "\nZdroj inštalácie: "
|
||||
IDS_INFO_UNINSTALLSTR "\nOdinstalačný reťazec: "
|
||||
IDS_INFO_MODIFYPATH "\nModify Path: "
|
||||
IDS_INFO_INSTALLDATE "\nDátum inštalácie: "
|
||||
IDS_AINFO_PACKAGE_NAME "\nPackage Name: "
|
||||
IDS_AINFO_PACKAGE_NAME "\nNázov balíčka: "
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_AINFO_VERSION "\nVerzia: "
|
||||
IDS_AINFO_AVAILABLEVERSION "\nAvailable Version: "
|
||||
IDS_AINFO_AVAILABLEVERSION "\nDostupná verzia: "
|
||||
IDS_AINFO_DESCRIPTION "\nPopis: "
|
||||
IDS_AINFO_SIZE "\nVeľkosť: "
|
||||
IDS_AINFO_URLSITE "\nDomovská stránka: "
|
||||
IDS_AINFO_LICENSE "\nLicencia: "
|
||||
IDS_AINFO_URLDOWNLOAD "\nStiahnuť: "
|
||||
IDS_AINFO_LANGUAGES "\nLanguages: "
|
||||
IDS_AINFO_LANGUAGES "\nJazyky: "
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CAT_AUDIO "Audio"
|
||||
IDS_CAT_DEVEL "Vývojárske"
|
||||
IDS_CAT_DEVEL "Vývoj"
|
||||
IDS_CAT_DRIVERS "Ovládače"
|
||||
IDS_CAT_EDU "Vzdelávacie"
|
||||
IDS_CAT_ENGINEER "Inžinierske"
|
||||
IDS_CAT_FINANCE "Finančné"
|
||||
IDS_CAT_EDU "Vzdelávanie"
|
||||
IDS_CAT_ENGINEER "Strojírenstvo"
|
||||
IDS_CAT_FINANCE "Financie"
|
||||
IDS_CAT_GAMES "Hry & zábava"
|
||||
IDS_CAT_GRAPHICS "Grafické"
|
||||
IDS_CAT_INTERNET "Internet & sieť"
|
||||
IDS_CAT_GRAPHICS "Grafika"
|
||||
IDS_CAT_INTERNET "Internet a siete"
|
||||
IDS_CAT_LIBS "Knižnice"
|
||||
IDS_CAT_OFFICE "Kancelárske"
|
||||
IDS_CAT_OTHER "Iné"
|
||||
IDS_CAT_SCIENCE "Vedecké"
|
||||
IDS_CAT_OFFICE "Kancelária"
|
||||
IDS_CAT_OTHER "Ostatné"
|
||||
IDS_CAT_SCIENCE "Veda"
|
||||
IDS_CAT_TOOLS "Nástroje"
|
||||
IDS_CAT_VIDEO "Video"
|
||||
IDS_CAT_THEMES "Themes"
|
||||
IDS_CAT_THEMES "Vzhľad"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "Manažér aplikácií systému ReactOS"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Hľadať…"
|
||||
IDS_APPS_COUNT "Počet programov: %d; Selected: %d"
|
||||
IDS_WELCOME_TITLE "Víta Vás Manažér aplikácií systému ReactOS!\n\n"
|
||||
IDS_WELCOME_TITLE "Víta Vás Manažér aplikácií systému ReactOS!"
|
||||
IDS_WELCOME_TEXT "Vyberte si kategóriu na ľavej strane, potom vyberte aplikáciu, ktorú chcete nainštalovať alebo odinštalovať.\nWebstránka projektu ReactOS: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Pridať/Odobrať programy"
|
||||
IDS_APPWIZ_TEXT1 "Vyberte ""Aplikácie"" alebo ""Aktualizácie"" pre zobrazenie zoznamu aplikácií alebo aktualizácií nainštalovaných vo vašom systéme."
|
||||
IDS_APPWIZ_TEXT2 "Pre odobranie programu alebo pre zmenu jeho inštalovaných komponentov, ho vyberte zo zoznamu a kliknite na ""Odinštalovať"" alebo ""Upraviť""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Hľadať…"
|
||||
IDS_APPS_COUNT "Počet programov: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Vybrané: %d"
|
||||
IDS_INSTALLED "Nainštalované"
|
||||
IDS_AVAILABLEFORINST "Dostupné pre nainštalovanie"
|
||||
IDS_UPDATES "Aktualizácie"
|
||||
IDS_APPLICATIONS "Aplikácie"
|
||||
IDS_CHOOSE_FOLDER_TEXT "Vyberte priečinok, ktorý sa použije pre sťahovanie programov:"
|
||||
IDS_CHOOSE_FOLDER_ERROR "Zvolili ste si neexistujúci priečinok!"
|
||||
IDS_URL_INVALID "The URL you have specified is invalid or not supported. Please correct it!"
|
||||
IDS_URL_INVALID "Vami zadaná URL adresa nie je platná alebo nie je podporovaná. Prosím, opravte ju!"
|
||||
IDS_APP_REG_REMOVE "Naozaj chcete vymazať údaje o nainštalovanom programe z registrov?"
|
||||
IDS_INFORMATION "Informácie"
|
||||
IDS_UNABLE_TO_DOWNLOAD "Unable to download the package! Address not found!"
|
||||
IDS_UNABLE_TO_DOWNLOAD2 "Unable to download the package! Check Internet Connection!"
|
||||
IDS_UNABLE_TO_DOWNLOAD "Súbor sa nepodarilo stiahnuť! Adresa nebola nájdená!"
|
||||
IDS_UNABLE_TO_DOWNLOAD2 "Balíček sa nepodarilo stiahnuť! Skontrolujte pripojenie k Internetu"
|
||||
IDS_UNABLE_TO_REMOVE "Nie je možné odstrániť z registrov údaje o programe!"
|
||||
IDS_UNABLE_TO_INSTALL "Unable to open installer!"
|
||||
IDS_UNABLE_TO_QUERY_CERT "Unable to retrieve certificate info.\n\nDo you want to continue anyway?"
|
||||
IDS_INTEG_CHECK_TITLE "Verifying package integrity…"
|
||||
IDS_INTEG_CHECK_FAIL "The package did not pass the integrity check, it may have been corrupted or tampered with during downloading. Running the software is not recommended."
|
||||
IDS_INTERRUPTED_DOWNLOAD "The download was interrupted. Check connection to Internet."
|
||||
IDS_UNABLE_TO_WRITE "Unable to write to disk. Disk may be at capacity."
|
||||
IDS_INSTALL_SELECTED "Install Selected"
|
||||
IDS_SELECTEDFORINST "Selected for installation"
|
||||
IDS_MISMATCH_CERT_INFO "The certificate used is unknown:\nSubject: %s\nIssuer: %s\nDo you want to continue anyway?"
|
||||
IDS_UNABLE_TO_INSTALL "Nepodarilo sa otvoriť inštalátor!"
|
||||
IDS_UNABLE_TO_QUERY_CERT "Nepodarilo sa získať informácie o certifikáte.\n\nChcete napriek tomu pokračovať?"
|
||||
IDS_INTEG_CHECK_TITLE "Overujem integritu balíčka…"
|
||||
IDS_INTEG_CHECK_FAIL "Balíček neprešiel kontrolou integrity, mohol byť poškodený alebo zmenený počas sťahovania. Spustenie tohto programu sa neodporúča."
|
||||
IDS_INTERRUPTED_DOWNLOAD "Sťahovanie bolo prerušené. Skontrolujte pripojenie k Internetu."
|
||||
IDS_UNABLE_TO_WRITE "Ukladanie na disk sa nepodarilo. Disk môže byť plný."
|
||||
IDS_INSTALL_SELECTED "Nainštalovať vybrané"
|
||||
IDS_SELECTEDFORINST "Vybrané pre inštaláciu"
|
||||
IDS_MISMATCH_CERT_INFO "Neznámy certifikát:\nSubjekt: %s\nVydávateľ: %s\nChcete napriek tomu pokračovať?"
|
||||
IDS_UNABLE_PATH "Incorrect path format."
|
||||
IDS_APP_DISPLAY_DETAILS "Details"
|
||||
IDS_APP_DISPLAY_LIST "List"
|
||||
IDS_APP_DISPLAY_TILE "Tile"
|
||||
IDS_NO_SEARCH_RESULTS "No search results"
|
||||
IDS_APP_DISPLAY_DETAILS "Podrobnosti"
|
||||
IDS_APP_DISPLAY_LIST "Zoznam"
|
||||
IDS_APP_DISPLAY_TILE "Dlaždice"
|
||||
IDS_NO_SEARCH_RESULTS "Žiadne výsledky"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STATUS_INSTALLED "Installed"
|
||||
IDS_STATUS_NOTINSTALLED "Not installed"
|
||||
IDS_STATUS_DOWNLOADED "Downloaded"
|
||||
IDS_STATUS_UPDATE_AVAILABLE "Update available"
|
||||
IDS_STATUS_DOWNLOADING "Downloading…"
|
||||
IDS_STATUS_INSTALLING "Installing…"
|
||||
IDS_STATUS_WAITING "Waiting to install…"
|
||||
IDS_STATUS_FINISHED "Finished"
|
||||
IDS_STATUS_INSTALLED "Nainstalované"
|
||||
IDS_STATUS_NOTINSTALLED "Nenainstalované"
|
||||
IDS_STATUS_DOWNLOADED "Stiahnuté"
|
||||
IDS_STATUS_UPDATE_AVAILABLE "Aktualizovateľné"
|
||||
IDS_STATUS_DOWNLOADING "Sťahujem…"
|
||||
IDS_STATUS_INSTALLING "Inštalujem…"
|
||||
IDS_STATUS_WAITING "Čakám na inštaláciu…"
|
||||
IDS_STATUS_FINISHED "Dokončené"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
@@ -242,34 +236,34 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_LANGUAGE_AVAILABLE_TRANSLATION "Supports your language"
|
||||
IDS_LANGUAGE_NO_TRANSLATION "Supports other languages"
|
||||
IDS_LANGUAGE_ENGLISH_TRANSLATION "Supports English"
|
||||
IDS_LANGUAGE_SINGLE "Single language"
|
||||
IDS_LANGUAGE_MORE_PLACEHOLDER " (+%d more)"
|
||||
IDS_LANGUAGE_AVAILABLE_PLACEHOLDER " (+%d available)"
|
||||
IDS_LANGUAGE_AVAILABLE_TRANSLATION "Podporuje váš jazyk"
|
||||
IDS_LANGUAGE_NO_TRANSLATION "Podporuje iné jazyky"
|
||||
IDS_LANGUAGE_ENGLISH_TRANSLATION "Podporuje angličtinu"
|
||||
IDS_LANGUAGE_SINGLE "Jediný jazyk"
|
||||
IDS_LANGUAGE_MORE_PLACEHOLDER " (+%d ďalších)"
|
||||
IDS_LANGUAGE_AVAILABLE_PLACEHOLDER " (+%d dostupných)"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_DL_DIALOG_DB_DISP "Applications Database"
|
||||
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database…"
|
||||
IDS_DL_DIALOG_DB_UNOFFICIAL_DOWNLOAD_DISP "Updating Database… (Unofficial source)"
|
||||
IDS_DL_DIALOG_DB_DISP "Databáza aplikácií"
|
||||
IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Aktualizujem databázu…"
|
||||
IDS_DL_DIALOG_DB_UNOFFICIAL_DOWNLOAD_DISP "Aktualizujem databázu… (Neoficiálny zdroj)"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CMD_USAGE "Usage: "
|
||||
IDS_CMD_NEED_PACKAGE_NAME "Error: option %1 expects one or more package name.\n"
|
||||
IDS_CMD_NEED_FILE_NAME "Error: option %1 expects a file name.\n"
|
||||
IDS_CMD_NEED_PARAMS "Error: option %1 expects one or more parameters.\n"
|
||||
IDS_CMD_INVALID_OPTION "Error: Unknown or invalid command line option specified.\n"
|
||||
IDS_CMD_FIND_RESULT_FOR "Find result for %1:\n"
|
||||
IDS_CMD_PACKAGE_NOT_FOUND "Failed to find package %1.\n"
|
||||
IDS_CMD_PACKAGE_INFO "Information about package %1:\n"
|
||||
IDS_CMD_USAGE "Použitie: "
|
||||
IDS_CMD_NEED_PACKAGE_NAME "Chyba: prepínač %1 očakáva jeden alebo viac názvov balíčkov.\n"
|
||||
IDS_CMD_NEED_FILE_NAME "Chyba: prepínač %1 očakáva názov súboru.\n"
|
||||
IDS_CMD_NEED_PARAMS "Chyba: prepínač %1 očakáva jeden alebo viac parametrov.\n"
|
||||
IDS_CMD_INVALID_OPTION "Chyba: Neznámy alebo neplatný prepínač príkazového riadka.\n"
|
||||
IDS_CMD_FIND_RESULT_FOR "Nájdi výsledok pre %1:\n"
|
||||
IDS_CMD_PACKAGE_NOT_FOUND "Nepodarilo sa nájsť balíček %1.\n"
|
||||
IDS_CMD_PACKAGE_INFO "Informácie o balíčku %1:\n"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?"
|
||||
IDS_INSTGEN_CONFIRMUNINST "Ste si istí, že chcete odinštalovať %s?"
|
||||
END
|
||||
|
@@ -43,22 +43,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Instalo\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Uninstall\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Modifiko", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hiq nga R&egjistri", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Rifresko\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Update Data&base\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Konfigurime"
|
||||
@@ -188,11 +172,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "ReactOS Applications Manager"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Kerko…"
|
||||
IDS_APPS_COUNT "Numrimi Aplicacioneve: %d; Selected: %d"
|
||||
IDS_WELCOME_TITLE "Mire Se Erdhe ne ReactOS Applications Manager!\n\n"
|
||||
IDS_WELCOME_TITLE "Mire Se Erdhe ne ReactOS Applications Manager!"
|
||||
IDS_WELCOME_TEXT "Zgjidh nje kategori ne te majte, pastaj zgjidh nje aplicacion per ta instaluar ose uninstall.\nReactOS Web Site: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Kerko…"
|
||||
IDS_APPS_COUNT "Numrimi Aplicacioneve: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Selected: %d"
|
||||
IDS_INSTALLED "Instaluar"
|
||||
IDS_AVAILABLEFORINST "Te vlefshem per instalim"
|
||||
IDS_UPDATES "Updates"
|
||||
|
@@ -43,22 +43,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Installera\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "&Avinstallera\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Ändra", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Ta bort från R&egistret", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Uppdate&ra\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Update Data&base\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Inställningar"
|
||||
@@ -188,11 +172,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "ReactOS programhanterare"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Sök…"
|
||||
IDS_APPS_COUNT "Programantal: %d; Selected: %d"
|
||||
IDS_WELCOME_TITLE "Välkommen till ReactOS programhanterare!\n\n"
|
||||
IDS_WELCOME_TITLE "Välkommen till ReactOS programhanterare!"
|
||||
IDS_WELCOME_TEXT "Välj en kategori till vänster, och sedan ett program för att installera eller avinstallera.\nReactOS Web sida: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Sök…"
|
||||
IDS_APPS_COUNT "Programantal: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Selected: %d"
|
||||
IDS_INSTALLED "Installerat"
|
||||
IDS_AVAILABLEFORINST "Tillgängliga for installation"
|
||||
IDS_UPDATES "Uppdateringar"
|
||||
|
@@ -45,22 +45,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Kur\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "K&aldır\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Değiştir", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Girdiyi Kayıt Defteri'nden Kaldır", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Yenile\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Uygulama Veri Ta&banını Yenile\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Ayarlar"
|
||||
@@ -190,11 +174,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "ReactOS Uygulama Yöneticisi"
|
||||
IDS_APP_AUTHORS "Telif Hakkı: 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Ara"
|
||||
IDS_APPS_COUNT "Uygulama Sayısı: %d; Seçili: %d"
|
||||
IDS_WELCOME_TITLE "ReactOS Uygulama Yöneticisi'ne hoş geldiniz.\n\n"
|
||||
IDS_WELCOME_TITLE "ReactOS Uygulama Yöneticisi'ne hoş geldiniz."
|
||||
IDS_WELCOME_TEXT "Solda bir kategori seçiniz, ardından kurmak ya da kaldırmak için bir uygulama seçiniz.\nReactOS'un İnternet sitesi: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Program Ekle/Kaldır"
|
||||
IDS_APPWIZ_TEXT1 "Sisteminizde yüklü olan uygulamaların veya güncellemelerin listesini görüntülemek için ""Uygulamalar"" veya ""Güncellemeler"" öğesini seçin."
|
||||
IDS_APPWIZ_TEXT2 "Bir programı kaldırmak veya yüklü bileşenlerini değiştirmek için listeden seçin ve ""Kaldır"" veya ""Değiştir"" üzerine tıklayın."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Ara…"
|
||||
IDS_APPS_COUNT "Uygulama Sayısı: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Seçili: %d"
|
||||
IDS_INSTALLED "Kurulanlar"
|
||||
IDS_AVAILABLEFORINST "Kurulabilir Uygulamalar"
|
||||
IDS_UPDATES "Güncelleştirmeler"
|
||||
@@ -220,7 +213,7 @@ BEGIN
|
||||
IDS_APP_DISPLAY_DETAILS "Detaylar"
|
||||
IDS_APP_DISPLAY_LIST "Liste"
|
||||
IDS_APP_DISPLAY_TILE "Karo"
|
||||
IDS_NO_SEARCH_RESULTS "No search results"
|
||||
IDS_NO_SEARCH_RESULTS "Arama sonucu yok"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
@@ -273,5 +266,5 @@ END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?"
|
||||
IDS_INSTGEN_CONFIRMUNINST "Kaldırmak istediğinizden emin misiniz %s?"
|
||||
END
|
||||
|
@@ -46,22 +46,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "&Встановити\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "В&идалити\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "&Змінити", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Вида&лити з реєстру", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Оновити\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Оновити список &програм\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Налаштування"
|
||||
@@ -191,11 +175,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "Менеджер додатків ReactOS"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "Пошук…"
|
||||
IDS_APPS_COUNT "Kількість додатків: %d; Обрано: %d"
|
||||
IDS_WELCOME_TITLE "Ласкаво просимо в Менеджер додатків ReactOS!\n\n"
|
||||
IDS_WELCOME_TITLE "Ласкаво просимо в Менеджер додатків ReactOS!"
|
||||
IDS_WELCOME_TEXT "Виберіть категорію зліва, а потім виберіть програми для встановлення чи видалення.\nСторінка ReactOS: "
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "Пошук…"
|
||||
IDS_APPS_COUNT "Kількість додатків: %d"
|
||||
IDS_APPS_SELECT_COUNT "; Обрано: %d"
|
||||
IDS_INSTALLED "Встановлені"
|
||||
IDS_AVAILABLEFORINST "Доступні для встановлення"
|
||||
IDS_UPDATES "Оновлення"
|
||||
|
@@ -47,22 +47,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "安装(&I)\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "卸载(&U)\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "修改(&M)", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "从注册表删除(&E)", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "刷新(&R)\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "更新数据库(&B)\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "设置"
|
||||
@@ -192,11 +176,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "ReactOS 程序管理器"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "搜索…"
|
||||
IDS_APPS_COUNT "程序数量:%d;已选:%d"
|
||||
IDS_WELCOME_TITLE "欢迎使用 ReactOS 程序管理器!\n\n"
|
||||
IDS_WELCOME_TITLE "欢迎使用 ReactOS 程序管理器!"
|
||||
IDS_WELCOME_TEXT "从左栏选择一个类别,然后选择要安装或卸载的程序。\nReactOS 网站:"
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "搜索…"
|
||||
IDS_APPS_COUNT "程序数量:%d"
|
||||
IDS_APPS_SELECT_COUNT ";已选:%d"
|
||||
IDS_INSTALLED "已安装"
|
||||
IDS_AVAILABLEFORINST "可安装"
|
||||
IDS_UPDATES "更新"
|
||||
|
@@ -44,22 +44,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "安裝(&I)\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "解除安裝(&U)\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "修改(&M)", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "從登錄檔刪除(&E)", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "重新整理(&R)\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "更新資料庫(&B)\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "設定"
|
||||
@@ -189,11 +173,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "ReactOS 程式管理員"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "搜尋..."
|
||||
IDS_APPS_COUNT "程式數量:%d; 已選:%d"
|
||||
IDS_WELCOME_TITLE "歡迎來到 ReactOS 程式管理員!\n\n"
|
||||
IDS_WELCOME_TITLE "歡迎來到 ReactOS 程式管理員!"
|
||||
IDS_WELCOME_TEXT "從左側欄目選擇一個類別,然後選擇要安裝或解除安裝的程式。\nReactOS 網站︰"
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "搜尋..."
|
||||
IDS_APPS_COUNT "程式數量:%d"
|
||||
IDS_APPS_SELECT_COUNT "; 已選:%d"
|
||||
IDS_INSTALLED "已安裝"
|
||||
IDS_AVAILABLEFORINST "可安裝"
|
||||
IDS_UPDATES "更新"
|
||||
|
@@ -44,22 +44,6 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
IDR_APPLICATIONMENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "安裝(&I)\tCtrl+Enter", ID_INSTALL
|
||||
MENUITEM "解除安裝(&U)\tCtrl+Del", ID_UNINSTALL
|
||||
MENUITEM "修改(&M)", ID_MODIFY
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "從登錄檔刪除(&E)", ID_REGREMOVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "重新整理(&R)\tF5", ID_REFRESH
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "更新資料庫(&B)\tCtrl+F5", ID_RESETDB
|
||||
END
|
||||
END
|
||||
|
||||
IDD_SETTINGS_DIALOG DIALOGEX 0, 0, 250, 265
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "設定"
|
||||
@@ -189,11 +173,20 @@ STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APPTITLE "ReactOS 程式管理員"
|
||||
IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev"
|
||||
IDS_SEARCH_TEXT "搜尋..."
|
||||
IDS_APPS_COUNT "程式數量:%d; 已選:%d"
|
||||
IDS_WELCOME_TITLE "歡迎來到 ReactOS 程式管理員!\n\n"
|
||||
IDS_WELCOME_TITLE "歡迎來到 ReactOS 程式管理員!"
|
||||
IDS_WELCOME_TEXT "從左側欄目選擇一個類別,然後選擇要安裝或解除安裝的程式。\nReactOS 網站︰"
|
||||
IDS_WELCOME_URL "https://reactos.org"
|
||||
|
||||
IDS_APPWIZ_TITLE "Add/Remove Programs"
|
||||
IDS_APPWIZ_TEXT1 "Choose ""Applications"" or ""Updates"" to view the list of applications or updates installed on your system."
|
||||
IDS_APPWIZ_TEXT2 "To remove a program or to modify its installed components, select it from the list and click on ""Uninstall"" or ""Modify""."
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SEARCH_TEXT "搜尋..."
|
||||
IDS_APPS_COUNT "程式數量:%d"
|
||||
IDS_APPS_SELECT_COUNT "; 已選:%d"
|
||||
IDS_INSTALLED "已安裝"
|
||||
IDS_AVAILABLEFORINST "可安裝"
|
||||
IDS_UPDATES "更新"
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -39,6 +39,31 @@ CopyTextToClipboard(LPCWSTR lpszText)
|
||||
CloseClipboard();
|
||||
}
|
||||
|
||||
static INT_PTR CALLBACK
|
||||
NothingDlgProc(HWND hDlg, UINT uMsg, WPARAM, LPARAM)
|
||||
{
|
||||
return uMsg == WM_CLOSE ? DestroyWindow(hDlg) : FALSE;
|
||||
}
|
||||
|
||||
VOID
|
||||
EmulateDialogReposition(HWND hwnd)
|
||||
{
|
||||
static const DWORD DlgTmpl[] = { WS_POPUP | WS_CAPTION | WS_SYSMENU, 0, 0, 0, 0, 0 };
|
||||
HWND hDlg = CreateDialogIndirectW(NULL, (LPDLGTEMPLATE)DlgTmpl, NULL, NothingDlgProc);
|
||||
if (hDlg)
|
||||
{
|
||||
RECT r;
|
||||
GetWindowRect(hwnd, &r);
|
||||
if (SetWindowPos(hDlg, hDlg, r.left, r.top, r.right - r.left, r.bottom - r.top, SWP_NOZORDER | SWP_NOACTIVATE))
|
||||
{
|
||||
SendMessage(hDlg, DM_REPOSITION, 0, 0);
|
||||
if (GetWindowRect(hDlg, &r))
|
||||
SetWindowPos(hwnd, hwnd, r.left, r.top, r.right - r.left, r.bottom - r.top, SWP_NOZORDER | SWP_NOACTIVATE);
|
||||
}
|
||||
SendMessage(hDlg, WM_CLOSE, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
VOID
|
||||
ShowPopupMenuEx(HWND hwnd, HWND hwndOwner, UINT MenuID, UINT DefaultItem, POINT *Point)
|
||||
{
|
||||
@@ -135,6 +160,8 @@ StartProcess(const CStringW &Path, BOOL Wait)
|
||||
{
|
||||
EnableWindow(hMainWnd, TRUE);
|
||||
SetForegroundWindow(hMainWnd);
|
||||
// We got the real activation message during MsgWaitForMultipleObjects while
|
||||
// we were disabled, we need to set the focus again now.
|
||||
SetFocus(hMainWnd);
|
||||
}
|
||||
|
||||
|
@@ -8,6 +8,7 @@
|
||||
#include "rapps.h"
|
||||
#include "settings.h"
|
||||
|
||||
#define SETTINGSSUBKEY L"Software\\ReactOS\\" RAPPS_NAME
|
||||
|
||||
class SettingsField
|
||||
{
|
||||
@@ -109,7 +110,7 @@ class SettingsFieldString : public SettingsField
|
||||
LPCWSTR m_RegName; // key name in registery
|
||||
};
|
||||
|
||||
void
|
||||
static void
|
||||
AddInfoFields(ATL::CAtlList<SettingsField *> &infoFields, SETTINGS_INFO &settings)
|
||||
{
|
||||
infoFields.AddTail(new SettingsFieldBool(&(settings.bSaveWndPos), L"bSaveWndPos"));
|
||||
@@ -127,11 +128,9 @@ AddInfoFields(ATL::CAtlList<SettingsField *> &infoFields, SETTINGS_INFO &setting
|
||||
infoFields.AddTail(new SettingsFieldString((settings.szNoProxyFor), MAX_PATH, L"NoProxyFor"));
|
||||
infoFields.AddTail(new SettingsFieldBool(&(settings.bUseSource), L"bUseSource"));
|
||||
infoFields.AddTail(new SettingsFieldString((settings.szSourceURL), INTERNET_MAX_URL_LENGTH, L"SourceURL"));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
BOOL
|
||||
static BOOL
|
||||
SaveAllSettings(CRegKey &key, SETTINGS_INFO &settings)
|
||||
{
|
||||
BOOL bAllSuccess = TRUE;
|
||||
@@ -153,10 +152,10 @@ SaveAllSettings(CRegKey &key, SETTINGS_INFO &settings)
|
||||
return bAllSuccess;
|
||||
}
|
||||
|
||||
BOOL
|
||||
static BOOL
|
||||
LoadAllSettings(CRegKey &key, SETTINGS_INFO &settings)
|
||||
{
|
||||
BOOL bAllSuccess = TRUE;
|
||||
BOOL bLoadedAny = FALSE;
|
||||
ATL::CAtlList<SettingsField *> infoFields;
|
||||
|
||||
AddInfoFields(infoFields, settings);
|
||||
@@ -165,27 +164,18 @@ LoadAllSettings(CRegKey &key, SETTINGS_INFO &settings)
|
||||
while (InfoListPosition)
|
||||
{
|
||||
SettingsField *Info = infoFields.GetNext(InfoListPosition);
|
||||
if (!Info->Load(key))
|
||||
{
|
||||
bAllSuccess = FALSE;
|
||||
// TODO: error log
|
||||
}
|
||||
if (Info->Load(key))
|
||||
bLoadedAny = TRUE;
|
||||
//else
|
||||
// TODO: error log
|
||||
delete Info;
|
||||
}
|
||||
return bAllSuccess;
|
||||
return bLoadedAny;
|
||||
}
|
||||
|
||||
VOID
|
||||
FillDefaultSettings(PSETTINGS_INFO pSettingsInfo)
|
||||
static void
|
||||
GetDefaultDownloadDirectory(CStringW &szDownloadDir)
|
||||
{
|
||||
CStringW szDownloadDir;
|
||||
ZeroMemory(pSettingsInfo, sizeof(SETTINGS_INFO));
|
||||
|
||||
pSettingsInfo->bSaveWndPos = TRUE;
|
||||
pSettingsInfo->bUpdateAtStart = FALSE;
|
||||
pSettingsInfo->bLogEnabled = TRUE;
|
||||
pSettingsInfo->bUseSource = FALSE;
|
||||
|
||||
if (FAILED(SHGetFolderPathW(NULL, CSIDL_PERSONAL, NULL, SHGFP_TYPE_CURRENT, szDownloadDir.GetBuffer(MAX_PATH))))
|
||||
{
|
||||
szDownloadDir.ReleaseBuffer();
|
||||
@@ -201,29 +191,68 @@ FillDefaultSettings(PSETTINGS_INFO pSettingsInfo)
|
||||
|
||||
PathAppendW(szDownloadDir.GetBuffer(MAX_PATH), L"\\RAPPS Downloads");
|
||||
szDownloadDir.ReleaseBuffer();
|
||||
}
|
||||
|
||||
CStringW::CopyChars(
|
||||
pSettingsInfo->szDownloadDir, _countof(pSettingsInfo->szDownloadDir), szDownloadDir.GetString(),
|
||||
szDownloadDir.GetLength() + 1);
|
||||
static VOID
|
||||
ValidateStringSettings(PSETTINGS_INFO pSettingsInfo)
|
||||
{
|
||||
if (!pSettingsInfo->szDownloadDir[0])
|
||||
{
|
||||
CStringW szDownloadDir;
|
||||
GetDefaultDownloadDirectory(szDownloadDir);
|
||||
|
||||
CStringW::CopyChars(pSettingsInfo->szDownloadDir, _countof(pSettingsInfo->szDownloadDir),
|
||||
szDownloadDir.GetString(), szDownloadDir.GetLength() + 1);
|
||||
}
|
||||
}
|
||||
|
||||
VOID
|
||||
FillDefaultSettings(PSETTINGS_INFO pSettingsInfo)
|
||||
{
|
||||
ZeroMemory(pSettingsInfo, sizeof(*pSettingsInfo));
|
||||
|
||||
pSettingsInfo->bSaveWndPos = TRUE;
|
||||
pSettingsInfo->bUpdateAtStart = FALSE;
|
||||
pSettingsInfo->bLogEnabled = TRUE;
|
||||
pSettingsInfo->bUseSource = FALSE;
|
||||
pSettingsInfo->bDelInstaller = FALSE;
|
||||
pSettingsInfo->Maximized = FALSE;
|
||||
pSettingsInfo->Left = CW_USEDEFAULT;
|
||||
pSettingsInfo->Top = CW_USEDEFAULT;
|
||||
pSettingsInfo->Width = 680;
|
||||
pSettingsInfo->Height = 450;
|
||||
|
||||
ValidateStringSettings(pSettingsInfo);
|
||||
}
|
||||
|
||||
BOOL
|
||||
LoadSettings(PSETTINGS_INFO pSettingsInfo)
|
||||
{
|
||||
BOOL bLoadedAny = FALSE;
|
||||
|
||||
FillDefaultSettings(pSettingsInfo);
|
||||
|
||||
ATL::CRegKey RegKey;
|
||||
if (RegKey.Open(HKEY_CURRENT_USER, L"Software\\ReactOS\\" RAPPS_NAME, KEY_READ) != ERROR_SUCCESS)
|
||||
if (RegKey.Open(HKEY_CURRENT_USER, SETTINGSSUBKEY, KEY_READ) == ERROR_SUCCESS)
|
||||
{
|
||||
return FALSE;
|
||||
bLoadedAny = LoadAllSettings(RegKey, *pSettingsInfo);
|
||||
}
|
||||
|
||||
return LoadAllSettings(RegKey, *pSettingsInfo);
|
||||
ValidateStringSettings(pSettingsInfo); // Handles the case where a REG_SZ is present but empty
|
||||
|
||||
if (!bLoadedAny)
|
||||
{
|
||||
// This the first launch, write at least one item so ParseCmdAndExecute() does not
|
||||
// trigger another DB update in another process instance between now and SaveSettings().
|
||||
ATL::CRegKey RegKey;
|
||||
if (RegKey.Create(HKEY_CURRENT_USER, SETTINGSSUBKEY, NULL, REG_OPTION_NON_VOLATILE,
|
||||
KEY_WRITE, NULL, NULL) == ERROR_SUCCESS)
|
||||
{
|
||||
SettingsFieldBool field(&(pSettingsInfo->bUpdateAtStart), L"bUpdateAtStart");
|
||||
field.Save(RegKey);
|
||||
}
|
||||
}
|
||||
return bLoadedAny;
|
||||
}
|
||||
|
||||
BOOL
|
||||
@@ -245,8 +274,8 @@ SaveSettings(HWND hwnd, PSETTINGS_INFO pSettingsInfo)
|
||||
(wp.showCmd == SW_MAXIMIZE || (wp.showCmd == SW_SHOWMINIMIZED && (wp.flags & WPF_RESTORETOMAXIMIZED)));
|
||||
}
|
||||
|
||||
if (RegKey.Create(HKEY_CURRENT_USER, L"Software\\ReactOS\\" RAPPS_NAME, NULL,
|
||||
REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, NULL) != ERROR_SUCCESS)
|
||||
if (RegKey.Create(HKEY_CURRENT_USER, SETTINGSSUBKEY, NULL, REG_OPTION_NON_VOLATILE,
|
||||
KEY_WRITE, NULL, NULL) != ERROR_SUCCESS)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
@@ -9,6 +9,20 @@
|
||||
|
||||
SETTINGS_INFO NewSettingsInfo;
|
||||
|
||||
static int CALLBACK
|
||||
BrowseFolderCallback(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
|
||||
{
|
||||
switch (uMsg)
|
||||
{
|
||||
case BFFM_INITIALIZED:
|
||||
SendMessageW(hwnd, BFFM_SETSELECTIONW, TRUE, lpData);
|
||||
break;
|
||||
case BFFM_VALIDATEFAILED:
|
||||
return TRUE;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
BOOL
|
||||
ChooseFolder(HWND hwnd)
|
||||
{
|
||||
@@ -25,24 +39,24 @@ ChooseFolder(HWND hwnd)
|
||||
bi.ulFlags =
|
||||
BIF_USENEWUI | BIF_DONTGOBELOWDOMAIN | BIF_RETURNONLYFSDIRS | /* BIF_BROWSEFILEJUNCTIONS | */ BIF_VALIDATE;
|
||||
|
||||
if (SUCCEEDED(CoInitializeEx(NULL, COINIT_APARTMENTTHREADED)))
|
||||
if (SUCCEEDED(CoInitialize(NULL)))
|
||||
{
|
||||
CStringW szBuf;
|
||||
WCHAR szDir[MAX_PATH];
|
||||
if (GetWindowTextW(GetDlgItem(hwnd, IDC_DOWNLOAD_DIR_EDIT), szDir, _countof(szDir)))
|
||||
{
|
||||
bi.lpfn = BrowseFolderCallback;
|
||||
bi.lParam = (LPARAM)szDir;
|
||||
}
|
||||
|
||||
LPITEMIDLIST lpItemList = SHBrowseForFolderW(&bi);
|
||||
if (lpItemList && SHGetPathFromIDListW(lpItemList, szBuf.GetBuffer(MAX_PATH)))
|
||||
if (lpItemList && SHGetPathFromIDListW(lpItemList, szDir))
|
||||
{
|
||||
szBuf.ReleaseBuffer();
|
||||
if (!szBuf.IsEmpty())
|
||||
if (*szDir)
|
||||
{
|
||||
SetDlgItemTextW(hwnd, IDC_DOWNLOAD_DIR_EDIT, szBuf);
|
||||
SetDlgItemTextW(hwnd, IDC_DOWNLOAD_DIR_EDIT, szDir);
|
||||
bRet = TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
szBuf.ReleaseBuffer();
|
||||
}
|
||||
|
||||
CoTaskMemFree(lpItemList);
|
||||
CoUninitialize();
|
||||
@@ -94,7 +108,9 @@ InitSettingsControls(HWND hDlg, PSETTINGS_INFO Info)
|
||||
SendDlgItemMessageW(hDlg, IDC_LOG_ENABLED, BM_SETCHECK, Info->bLogEnabled, 0);
|
||||
SendDlgItemMessageW(hDlg, IDC_DEL_AFTER_INSTALL, BM_SETCHECK, Info->bDelInstaller, 0);
|
||||
|
||||
SetWindowTextW(GetDlgItem(hDlg, IDC_DOWNLOAD_DIR_EDIT), Info->szDownloadDir);
|
||||
HWND hCtl = GetDlgItem(hDlg, IDC_DOWNLOAD_DIR_EDIT);
|
||||
SetWindowTextW(hCtl, Info->szDownloadDir);
|
||||
SendMessageW(hCtl, EM_LIMITTEXT, MAX_PATH - 1, 0);
|
||||
|
||||
CheckRadioButton(hDlg, IDC_PROXY_DEFAULT, IDC_USE_PROXY, IDC_PROXY_DEFAULT + Info->Proxy);
|
||||
|
||||
|
@@ -191,7 +191,7 @@ HandleUninstallCommand(CAppDB &db, UINT argcLeft, LPWSTR *argvLeft)
|
||||
|
||||
if (pInfo)
|
||||
{
|
||||
retval = pInfo->UninstallApplication(silent ? UCF_SILENT : UCF_NONE);
|
||||
retval = pInfo->UninstallApplication((silent ? UCF_SILENT : UCF_NONE) | UCF_SAMEPROCESS);
|
||||
}
|
||||
delete pDelete;
|
||||
return retval;
|
||||
@@ -338,6 +338,7 @@ ParseCmdAndExecute(LPWSTR lpCmdLine, BOOL bIsFirstLaunch, int nCmdShow)
|
||||
BOOL bAppwizMode = (argc > 1 && MatchCmdOption(argv[1], CMD_KEY_APPWIZ));
|
||||
if (!bAppwizMode)
|
||||
{
|
||||
CUpdateDatabaseMutex lock;
|
||||
if (SettingsInfo.bUpdateAtStart || bIsFirstLaunch)
|
||||
db.RemoveCached();
|
||||
|
||||
@@ -349,16 +350,17 @@ ParseCmdAndExecute(LPWSTR lpCmdLine, BOOL bIsFirstLaunch, int nCmdShow)
|
||||
if (argc == 1 || bAppwizMode) // RAPPS is launched without options or APPWIZ mode is requested
|
||||
{
|
||||
// Check whether the RAPPS MainWindow is already launched in another process
|
||||
HANDLE hMutex;
|
||||
CStringW szWindowText(MAKEINTRESOURCEW(bAppwizMode ? IDS_APPWIZ_TITLE : IDS_APPTITLE));
|
||||
LPCWSTR pszMutex = bAppwizMode ? L"RAPPWIZ" : MAINWINDOWMUTEX;
|
||||
|
||||
hMutex = CreateMutexW(NULL, FALSE, szWindowClass);
|
||||
HANDLE hMutex = CreateMutexW(NULL, FALSE, pszMutex);
|
||||
if ((!hMutex) || (GetLastError() == ERROR_ALREADY_EXISTS))
|
||||
{
|
||||
/* If already started, find its window */
|
||||
HWND hWindow;
|
||||
for (int wait = 2500, inter = 250; wait > 0; wait -= inter)
|
||||
{
|
||||
if ((hWindow = FindWindowW(szWindowClass, NULL)) != NULL)
|
||||
if ((hWindow = FindWindowW(szWindowClass, szWindowText)) != NULL)
|
||||
break;
|
||||
Sleep(inter);
|
||||
}
|
||||
@@ -366,6 +368,7 @@ ParseCmdAndExecute(LPWSTR lpCmdLine, BOOL bIsFirstLaunch, int nCmdShow)
|
||||
if (hWindow)
|
||||
{
|
||||
/* Activate the window in the other instance */
|
||||
ShowWindow(hWindow, SW_SHOWNA);
|
||||
SwitchToThisWindow(hWindow, TRUE);
|
||||
if (bAppwizMode)
|
||||
PostMessage(hWindow, WM_COMMAND, ID_ACTIVATE_APPWIZ, 0);
|
||||
@@ -376,6 +379,7 @@ ParseCmdAndExecute(LPWSTR lpCmdLine, BOOL bIsFirstLaunch, int nCmdShow)
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
szWindowText.Empty();
|
||||
|
||||
CMainWindow wnd(&db, bAppwizMode);
|
||||
MainWindowLoop(&wnd, nCmdShow);
|
||||
|
@@ -13,7 +13,8 @@
|
||||
#include <gdiplus.h>
|
||||
#include <conutils.h>
|
||||
|
||||
LPCWSTR szWindowClass = L"ROSAPPMGR2";
|
||||
LPCWSTR szWindowClass = MAINWINDOWCLASSNAME;
|
||||
LONG g_Busy = 0;
|
||||
|
||||
HWND hMainWnd;
|
||||
HINSTANCE hInst;
|
||||
@@ -40,12 +41,7 @@ wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, INT nSh
|
||||
}
|
||||
|
||||
hInst = hInstance;
|
||||
|
||||
BOOL bIsFirstLaunch = !LoadSettings(&SettingsInfo);
|
||||
if (bIsFirstLaunch)
|
||||
{
|
||||
FillDefaultSettings(&SettingsInfo);
|
||||
}
|
||||
|
||||
InitLogs();
|
||||
InitCommonControls();
|
||||
|
@@ -11,7 +11,7 @@
|
||||
#include <shlguid.h>
|
||||
|
||||
ChildWnd* g_pChildWnd;
|
||||
static int last_split;
|
||||
static int last_split = -1;
|
||||
HBITMAP SizingPattern;
|
||||
HBRUSH SizingBrush;
|
||||
WCHAR Suggestions[256];
|
||||
@@ -99,16 +99,20 @@ extern void ResizeWnd(int cx, int cy)
|
||||
const int nButtonWidth = 44;
|
||||
const int nButtonHeight = 22;
|
||||
int cyEdge = GetSystemMetrics(SM_CYEDGE);
|
||||
const UINT uFlags = SWP_NOZORDER | SWP_NOACTIVATE;
|
||||
SetRect(&rt, 0, 0, cx, cy);
|
||||
const UINT uFlags = SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOCOPYBITS;
|
||||
|
||||
cy = 0;
|
||||
if (hStatusBar != NULL)
|
||||
if (IsWindowVisible(hStatusBar))
|
||||
{
|
||||
GetWindowRect(hStatusBar, &rs);
|
||||
cy = rs.bottom - rs.top;
|
||||
}
|
||||
|
||||
GetWindowRect(g_pChildWnd->hAddressBtnWnd, &rb);
|
||||
|
||||
GetClientRect(g_pChildWnd->hWnd, &rt);
|
||||
RedrawWindow(g_pChildWnd->hWnd, &rt, NULL, RDW_INVALIDATE | RDW_NOCHILDREN);
|
||||
|
||||
g_pChildWnd->nSplitPos = ClampSplitBarX(g_pChildWnd->hWnd, g_pChildWnd->nSplitPos);
|
||||
|
||||
cx = g_pChildWnd->nSplitPos + SPLIT_WIDTH / 2;
|
||||
@@ -148,7 +152,7 @@ static void draw_splitbar(HWND hWnd, int x)
|
||||
{
|
||||
RECT rt;
|
||||
HGDIOBJ OldObj;
|
||||
HDC hdc = GetDC(hWnd);
|
||||
HDC hdc = GetDCEx(hWnd, NULL, DCX_CACHE);
|
||||
|
||||
if(!SizingPattern)
|
||||
{
|
||||
@@ -159,7 +163,10 @@ static void draw_splitbar(HWND hWnd, int x)
|
||||
{
|
||||
SizingBrush = CreatePatternBrush(SizingPattern);
|
||||
}
|
||||
GetClientRect(hWnd, &rt);
|
||||
|
||||
GetWindowRect(g_pChildWnd->hTreeWnd, &rt);
|
||||
MapWindowPoints(NULL, hWnd, (POINT *)&rt, sizeof(rt) / sizeof(POINT));
|
||||
|
||||
rt.left = x - SPLIT_WIDTH/2;
|
||||
rt.right = x + SPLIT_WIDTH/2+1;
|
||||
OldObj = SelectObject(hdc, SizingBrush);
|
||||
@@ -388,7 +395,8 @@ LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa
|
||||
g_pChildWnd->nSplitPos = 190;
|
||||
g_pChildWnd->hWnd = hWnd;
|
||||
|
||||
style = WS_CHILD | WS_VISIBLE | WS_TABSTOP;
|
||||
/* ES_AUTOHSCROLL style enables horizontal scrolling and shrinking */
|
||||
style = WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL;
|
||||
g_pChildWnd->hAddressBarWnd = CreateWindowExW(WS_EX_CLIENTEDGE, L"Edit", NULL, style,
|
||||
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
|
||||
hWnd, (HMENU)0, hInst, 0);
|
||||
|
@@ -1446,7 +1446,8 @@ LRESULT CALLBACK FrameWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa
|
||||
// For now, the Help dialog item is disabled because of lacking of HTML Help support
|
||||
EnableMenuItem(GetMenu(hWnd), ID_HELP_HELPTOPICS, MF_BYCOMMAND | MF_GRAYED);
|
||||
GetClientRect(hWnd, &rc);
|
||||
CreateWindowExW(0, szChildClass, NULL, WS_CHILD | WS_VISIBLE,
|
||||
CreateWindowExW(0, szChildClass, NULL,
|
||||
WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
|
||||
rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top,
|
||||
hWnd, (HMENU)0, hInst, 0);
|
||||
break;
|
||||
|
@@ -74,6 +74,7 @@ ServiceControlHandlerEx(
|
||||
TRACE(" SERVICE_CONTROL_STOP received\n");
|
||||
UpdateServiceStatus(SERVICE_STOP_PENDING);
|
||||
StopRpcServer();
|
||||
UpdateServiceStatus(SERVICE_STOPPED);
|
||||
return ERROR_SUCCESS;
|
||||
|
||||
case SERVICE_CONTROL_PAUSE:
|
||||
@@ -100,6 +101,7 @@ ServiceControlHandlerEx(
|
||||
TRACE(" SERVICE_CONTROL_SHUTDOWN received\n");
|
||||
UpdateServiceStatus(SERVICE_STOP_PENDING);
|
||||
StopRpcServer();
|
||||
UpdateServiceStatus(SERVICE_STOPPED);
|
||||
return ERROR_SUCCESS;
|
||||
|
||||
default :
|
||||
|
@@ -22,7 +22,7 @@
|
||||
#include "fsutil.h"
|
||||
|
||||
#include <fslib/vfatlib.h>
|
||||
#include <fslib/btrfslib.h>
|
||||
// #include <fslib/btrfslib.h>
|
||||
// #include <fslib/ext2lib.h>
|
||||
// #include <fslib/ntfslib.h>
|
||||
|
||||
@@ -165,9 +165,7 @@ static FILE_SYSTEM RegisteredFileSystems[] =
|
||||
#if 0
|
||||
{ L"FATX" , VfatxFormat, VfatxChkdsk },
|
||||
{ L"NTFS" , NtfsFormat, NtfsChkdsk },
|
||||
#endif
|
||||
{ L"BTRFS", BtrfsFormat, BtrfsChkdsk },
|
||||
#if 0
|
||||
{ L"EXT2" , Ext2Format, Ext2Chkdsk },
|
||||
{ L"EXT3" , Ext2Format, Ext2Chkdsk },
|
||||
{ L"EXT4" , Ext2Format, Ext2Chkdsk },
|
||||
|
@@ -378,29 +378,48 @@ Quit:
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief
|
||||
* Determine the installation source path and isolate its useful
|
||||
* path components (root path and source sub-directory).
|
||||
*
|
||||
* The installation source path is based either on the installer's
|
||||
* image file path, or on the \SystemRoot full path.
|
||||
*
|
||||
* In case the \SystemRoot full path prefixes the image file path,
|
||||
* use the resolved \SystemRoot as the installation source path.
|
||||
* Otherwise, use the image file path.
|
||||
*
|
||||
* The returned strings are allocated with RtlCreateUnicodeString(),
|
||||
* and need to be freed with RtlFreeUnicodeString() after being used.
|
||||
*
|
||||
* Example of output:
|
||||
* SourcePath: '\Device\CdRom0\I386'
|
||||
* SourceRootPath: '\Device\CdRom0'
|
||||
* SourceRootDir: '\I386'
|
||||
**/
|
||||
NTSTATUS
|
||||
GetSourcePaths(
|
||||
OUT PUNICODE_STRING SourcePath,
|
||||
OUT PUNICODE_STRING SourceRootPath,
|
||||
OUT PUNICODE_STRING SourceRootDir)
|
||||
_Out_ PUNICODE_STRING SourcePath,
|
||||
_Out_ PUNICODE_STRING SourceRootPath,
|
||||
_Out_ PUNICODE_STRING SourceRootDir)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
HANDLE LinkHandle;
|
||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||
UCHAR ImageFileBuffer[sizeof(UNICODE_STRING) + MAX_PATH * sizeof(WCHAR)];
|
||||
PUNICODE_STRING InstallSourcePath = (PUNICODE_STRING)&ImageFileBuffer;
|
||||
WCHAR SystemRootBuffer[MAX_PATH] = L"";
|
||||
UNICODE_STRING SystemRootPath = RTL_CONSTANT_STRING(L"\\SystemRoot");
|
||||
ULONG BufferSize;
|
||||
PWCHAR Ptr;
|
||||
HANDLE LinkHandle;
|
||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||
IO_STATUS_BLOCK IoStatusBlock;
|
||||
struct { OBJECT_NAME_INFORMATION; WCHAR Buffer[MAX_PATH]; } ImageFileBuffer;
|
||||
PUNICODE_STRING InstallSourcePath = &ImageFileBuffer.Name;
|
||||
struct { OBJECT_NAME_INFORMATION; WCHAR Buffer[MAX_PATH]; } SystemRootBuffer;
|
||||
PUNICODE_STRING SystemRootPath = &SystemRootBuffer.Name;
|
||||
const UNICODE_STRING SystemRoot = RTL_CONSTANT_STRING(L"\\SystemRoot");
|
||||
|
||||
// FIXME: commented out to allow installation from USB
|
||||
#if 0
|
||||
/* Determine the installation source path via the full path of the installer */
|
||||
/* Retrieve the installer's full image file path */
|
||||
RtlInitEmptyUnicodeString(InstallSourcePath,
|
||||
(PWSTR)((ULONG_PTR)ImageFileBuffer + sizeof(UNICODE_STRING)),
|
||||
sizeof(ImageFileBuffer) - sizeof(UNICODE_STRING)
|
||||
/* Reserve space for a NULL terminator */ - sizeof(UNICODE_NULL));
|
||||
ImageFileBuffer.Buffer,
|
||||
sizeof(ImageFileBuffer.Buffer));
|
||||
BufferSize = sizeof(ImageFileBuffer);
|
||||
Status = NtQueryInformationProcess(NtCurrentProcess(),
|
||||
ProcessImageFileName,
|
||||
@@ -410,75 +429,114 @@ GetSourcePaths(
|
||||
// STATUS_INFO_LENGTH_MISMATCH or STATUS_BUFFER_TOO_SMALL ?
|
||||
if (!NT_SUCCESS(Status))
|
||||
return Status;
|
||||
ASSERT(InstallSourcePath->Length < InstallSourcePath->MaximumLength);
|
||||
|
||||
/* Manually NULL-terminate */
|
||||
/* Go to the beginning of the path component, stop at the separator */
|
||||
Ptr = ImageFileBuffer.Buffer + (InstallSourcePath->Length / sizeof(WCHAR));
|
||||
while ((Ptr > ImageFileBuffer.Buffer) && (*Ptr != OBJ_NAME_PATH_SEPARATOR))
|
||||
--Ptr;
|
||||
/* Strip the trailing file name (at the separator or beginning of buffer)
|
||||
* and manually NULL-terminate */
|
||||
InstallSourcePath->Length = (ULONG_PTR)Ptr - (ULONG_PTR)ImageFileBuffer.Buffer;
|
||||
InstallSourcePath->Buffer[InstallSourcePath->Length / sizeof(WCHAR)] = UNICODE_NULL;
|
||||
|
||||
/* Strip the trailing file name */
|
||||
Ptr = wcsrchr(InstallSourcePath->Buffer, OBJ_NAME_PATH_SEPARATOR);
|
||||
if (Ptr)
|
||||
*Ptr = UNICODE_NULL;
|
||||
InstallSourcePath->Length = wcslen(InstallSourcePath->Buffer) * sizeof(WCHAR);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Now resolve the full path to \SystemRoot. In case it prefixes
|
||||
* the installation source path determined from the full path of
|
||||
* the installer, we use instead the resolved \SystemRoot as the
|
||||
* installation source path.
|
||||
* Otherwise, we use instead the path from the full installer path.
|
||||
* Now, resolve the \SystemRoot symlink target full path.
|
||||
*
|
||||
* The symlink target path resolution requires reparsing, because it
|
||||
* can reference other symlinks. This is what happens, for example when
|
||||
* booting the installation from a removable hard-disk. We can have:
|
||||
*
|
||||
* \SystemRoot ---> \Device\Harddisk1\Partition1\ReactOS
|
||||
* and: \Device\Harddisk1\Partition1 ---> \Device\HarddiskVolume2
|
||||
* etc.
|
||||
* and we wish to resolve \SystemRoot to: \Device\HarddiskVolume2\ReactOS
|
||||
*
|
||||
* We then verify whether it prefixes the image file path obtained
|
||||
* from the step above, which is a fully reparsed path.
|
||||
*
|
||||
* - Using NtOpenSymbolicLinkObject(SYMBOLIC_LINK_QUERY) followed by
|
||||
* NtQuerySymbolicLinkObject() would only resolve the first symlink
|
||||
* but not the others (\Device\Harddisk1\Partition1 left as is).
|
||||
*
|
||||
* - Since \SystemRoot has to point to a directory, we try opening
|
||||
* the directory itself: NtOpenFile(..., FILE_DIRECTORY_FILE).
|
||||
*
|
||||
* - A call to NtQueryInformationFile(FileNameInformation) alone on
|
||||
* the obtained handle would only retrieve the FS directory name,
|
||||
* i.e. \ReactOS , but not the whole NT path.
|
||||
*
|
||||
* - We therefore use NtQueryObject(), which allows retrieving the
|
||||
* full resolved NT path (device name + FS directory name).
|
||||
*/
|
||||
|
||||
InitializeObjectAttributes(&ObjectAttributes,
|
||||
&SystemRootPath,
|
||||
(PUNICODE_STRING)&SystemRoot,
|
||||
OBJ_CASE_INSENSITIVE,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
Status = NtOpenSymbolicLinkObject(&LinkHandle,
|
||||
SYMBOLIC_LINK_QUERY,
|
||||
&ObjectAttributes);
|
||||
RtlInitEmptyUnicodeString(SystemRootPath,
|
||||
SystemRootBuffer.Buffer,
|
||||
sizeof(SystemRootBuffer.Buffer));
|
||||
|
||||
Status = NtOpenFile(&LinkHandle,
|
||||
SYNCHRONIZE,
|
||||
&ObjectAttributes,
|
||||
&IoStatusBlock,
|
||||
FILE_SHARE_READ | FILE_SHARE_WRITE,
|
||||
FILE_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT
|
||||
/*| FILE_OPEN_FOR_BACKUP_INTENT*/);
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
/* Resolve the path and close its handle */
|
||||
Status = NtQueryObject(LinkHandle,
|
||||
ObjectNameInformation,
|
||||
&SystemRootBuffer,
|
||||
sizeof(SystemRootBuffer),
|
||||
&BufferSize);
|
||||
NtClose(LinkHandle);
|
||||
}
|
||||
/* If any of the calls above failed, try to naively resolve the symlink */
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
/*
|
||||
* We failed at opening the \SystemRoot link (usually due to wrong
|
||||
* access rights). Do not consider this as a fatal error, but use
|
||||
* instead the image file path as the installation source path.
|
||||
*/
|
||||
DPRINT1("NtOpenSymbolicLinkObject(%wZ) failed with Status 0x%08lx\n",
|
||||
&SystemRootPath, Status);
|
||||
goto InitPaths;
|
||||
RtlInitEmptyUnicodeString(SystemRootPath,
|
||||
SystemRootBuffer.Buffer,
|
||||
sizeof(SystemRootBuffer.Buffer));
|
||||
|
||||
Status = NtOpenSymbolicLinkObject(&LinkHandle,
|
||||
SYMBOLIC_LINK_QUERY,
|
||||
&ObjectAttributes);
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
/* Resolve the link and close its handle */
|
||||
Status = NtQuerySymbolicLinkObject(LinkHandle,
|
||||
SystemRootPath,
|
||||
&BufferSize);
|
||||
NtClose(LinkHandle);
|
||||
}
|
||||
}
|
||||
ASSERT(SystemRootPath->Length < SystemRootPath->MaximumLength);
|
||||
|
||||
RtlInitEmptyUnicodeString(&SystemRootPath,
|
||||
SystemRootBuffer,
|
||||
sizeof(SystemRootBuffer));
|
||||
|
||||
/* Resolve the link and close its handle */
|
||||
Status = NtQuerySymbolicLinkObject(LinkHandle,
|
||||
&SystemRootPath,
|
||||
&BufferSize);
|
||||
NtClose(LinkHandle);
|
||||
|
||||
if (!NT_SUCCESS(Status))
|
||||
return Status; // Unexpected error
|
||||
|
||||
/* Check whether the resolved \SystemRoot is a prefix of the image file path */
|
||||
// FIXME: commented out to allow installation from USB
|
||||
// if (RtlPrefixUnicodeString(&SystemRootPath, InstallSourcePath, TRUE))
|
||||
{
|
||||
/* Yes it is, so we use instead SystemRoot as the installation source path */
|
||||
InstallSourcePath = &SystemRootPath;
|
||||
}
|
||||
|
||||
|
||||
InitPaths:
|
||||
/*
|
||||
* Retrieve the different source path components
|
||||
* If the resolved \SystemRoot is a prefix of the image file path,
|
||||
* use \SystemRoot instead as the installation source path.
|
||||
*
|
||||
* If opening the \SystemRoot link failed (usually due to wrong
|
||||
* access rights), do not consider this as a fatal error, and
|
||||
* use the image file path as the installation source path.
|
||||
*/
|
||||
if (NT_SUCCESS(Status) && RtlPrefixUnicodeString(SystemRootPath, InstallSourcePath, TRUE))
|
||||
InstallSourcePath = SystemRootPath;
|
||||
|
||||
|
||||
/*
|
||||
* Retrieve the different source path components.
|
||||
*/
|
||||
RtlCreateUnicodeString(SourcePath, InstallSourcePath->Buffer);
|
||||
|
||||
/* Strip trailing directory */
|
||||
/* Isolate and strip the trailing (source root) directory */
|
||||
Ptr = wcsrchr(InstallSourcePath->Buffer, OBJ_NAME_PATH_SEPARATOR);
|
||||
if (Ptr)
|
||||
{
|
||||
@@ -986,10 +1044,6 @@ InitializeSetup(
|
||||
NTSTATUS Status;
|
||||
|
||||
/* Get the source path and source root path */
|
||||
//
|
||||
// NOTE: Sometimes the source path may not be in SystemRoot !!
|
||||
// (and this is the case when using the 1st-stage GUI setup!)
|
||||
//
|
||||
Status = GetSourcePaths(&pSetupData->SourcePath,
|
||||
&pSetupData->SourceRootPath,
|
||||
&pSetupData->SourceRootDir);
|
||||
@@ -998,12 +1052,6 @@ InitializeSetup(
|
||||
DPRINT1("GetSourcePaths() failed (Status 0x%08lx)\n", Status);
|
||||
return ERROR_NO_SOURCE_DRIVE;
|
||||
}
|
||||
/*
|
||||
* Example of output:
|
||||
* SourcePath: '\Device\CdRom0\I386'
|
||||
* SourceRootPath: '\Device\CdRom0'
|
||||
* SourceRootDir: '\I386'
|
||||
*/
|
||||
DPRINT1("SourcePath (1): '%wZ'\n", &pSetupData->SourcePath);
|
||||
DPRINT1("SourceRootPath (1): '%wZ'\n", &pSetupData->SourceRootPath);
|
||||
DPRINT1("SourceRootDir (1): '%wZ'\n", &pSetupData->SourceRootDir);
|
||||
|
@@ -170,9 +170,9 @@ InstallSetupInfFile(
|
||||
|
||||
NTSTATUS
|
||||
GetSourcePaths(
|
||||
OUT PUNICODE_STRING SourcePath,
|
||||
OUT PUNICODE_STRING SourceRootPath,
|
||||
OUT PUNICODE_STRING SourceRootDir);
|
||||
_Out_ PUNICODE_STRING SourcePath,
|
||||
_Out_ PUNICODE_STRING SourceRootPath,
|
||||
_Out_ PUNICODE_STRING SourceRootDir);
|
||||
|
||||
ERROR_NUMBER
|
||||
LoadSetupInf(
|
||||
|
@@ -3122,9 +3122,9 @@ IsSupportedActivePartition(
|
||||
|
||||
/* NOTE: Please keep in sync with the RegisteredFileSystems list! */
|
||||
if (wcsicmp(Volume->Info.FileSystem, L"FAT") == 0 ||
|
||||
wcsicmp(Volume->Info.FileSystem, L"FAT32") == 0 ||
|
||||
wcsicmp(Volume->Info.FileSystem, L"FAT32") == 0)
|
||||
// wcsicmp(Volume->Info.FileSystem, L"NTFS") == 0 ||
|
||||
wcsicmp(Volume->Info.FileSystem, L"BTRFS") == 0)
|
||||
// wcsicmp(Volume->Info.FileSystem, L"BTRFS") == 0)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
@@ -19,7 +19,7 @@ add_rc_deps(reactos.rc ${reactos_rc_deps})
|
||||
add_executable(reactos ${SOURCE} reactos.rc)
|
||||
add_pch(reactos reactos.h SOURCE)
|
||||
set_module_type(reactos win32gui UNICODE)
|
||||
target_link_libraries(reactos uuid setuplib ext2lib vfatlib btrfslib)
|
||||
target_link_libraries(reactos uuid setuplib ext2lib vfatlib)
|
||||
target_link_libraries(reactos zlib_solo) ## We use USETUP's cabinet implementation
|
||||
add_importlibs(reactos advapi32 gdi32 user32 comctl32 shlwapi setupapi msvcrt kernel32 ntdll)
|
||||
add_cd_file(TARGET reactos DESTINATION reactos NO_CAB FOR bootcd)
|
||||
|
@@ -35,6 +35,6 @@ endif()
|
||||
|
||||
add_pch(usetup usetup.h SOURCE)
|
||||
set_module_type(usetup nativecui)
|
||||
target_link_libraries(usetup inflib setuplib zlib_solo ext2lib vfatlib btrfslib chkstk)
|
||||
target_link_libraries(usetup inflib setuplib zlib_solo ext2lib vfatlib chkstk)
|
||||
add_importlibs(usetup ntdll)
|
||||
add_cd_file(TARGET usetup DESTINATION reactos/system32 NO_CAB NAME_ON_CD smss.exe FOR bootcd regtest)
|
||||
|
@@ -49,15 +49,21 @@ IDB_TASKBARPROP_LOCK_GROUP_NOQL BITMAP "res/bmp/150.bmp"
|
||||
IDB_TASKBARPROP_NOLOCK_GROUP_NOQL BITMAP "res/bmp/151.bmp"
|
||||
IDB_TASKBARPROP_LOCK_NOGROUP_NOQL BITMAP "res/bmp/152.bmp"
|
||||
IDB_TASKBARPROP_NOLOCK_NOGROUP_NOQL BITMAP "res/bmp/153.bmp"
|
||||
IDB_SYSTRAYPROP_SHOW_SECONDS BITMAP "res/bmp/154.bmp"
|
||||
IDB_SYSTRAYPROP_HIDE_SECONDS BITMAP "res/bmp/155.bmp"
|
||||
IDB_SYSTRAYPROP_SHOW_SECONDS_NODESK BITMAP "res/bmp/154.bmp"
|
||||
IDB_SYSTRAYPROP_HIDE_SECONDS_NODESK BITMAP "res/bmp/155.bmp"
|
||||
IDB_STARTMENU BITMAP "res/bmp/158.bmp"
|
||||
IDB_STARTPREVIEW BITMAP "res/bmp/170.bmp"
|
||||
IDB_STARTPREVIEW_CLASSIC BITMAP "res/bmp/171.bmp"
|
||||
IDB_SYSTRAYPROP_HIDE_CLOCK BITMAP "res/bmp/180.bmp"
|
||||
IDB_SYSTRAYPROP_HIDE_NOCLOCK BITMAP "res/bmp/181.bmp"
|
||||
IDB_SYSTRAYPROP_SHOW_CLOCK BITMAP "res/bmp/182.bmp"
|
||||
IDB_SYSTRAYPROP_SHOW_NOCLOCK BITMAP "res/bmp/183.bmp"
|
||||
IDB_SYSTRAYPROP_HIDE_CLOCK_NODESK BITMAP "res/bmp/180.bmp"
|
||||
IDB_SYSTRAYPROP_HIDE_NOCLOCK_NODESK BITMAP "res/bmp/181.bmp"
|
||||
IDB_SYSTRAYPROP_SHOW_CLOCK_NODESK BITMAP "res/bmp/182.bmp"
|
||||
IDB_SYSTRAYPROP_SHOW_NOCLOCK_NODESK BITMAP "res/bmp/183.bmp"
|
||||
IDB_SYSTRAYPROP_SHOW_SECONDS_DESK BITMAP "res/bmp/184.bmp"
|
||||
IDB_SYSTRAYPROP_HIDE_SECONDS_DESK BITMAP "res/bmp/185.bmp"
|
||||
IDB_SYSTRAYPROP_HIDE_CLOCK_DESK BITMAP "res/bmp/186.bmp"
|
||||
IDB_SYSTRAYPROP_HIDE_NOCLOCK_DESK BITMAP "res/bmp/187.bmp"
|
||||
IDB_SYSTRAYPROP_SHOW_CLOCK_DESK BITMAP "res/bmp/188.bmp"
|
||||
IDB_SYSTRAYPROP_SHOW_NOCLOCK_DESK BITMAP "res/bmp/189.bmp"
|
||||
|
||||
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "explorer.exe.manifest"
|
||||
|
||||
|
BIN
base/shell/explorer/res/bmp/184.bmp
Normal file
BIN
base/shell/explorer/res/bmp/184.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
BIN
base/shell/explorer/res/bmp/185.bmp
Normal file
BIN
base/shell/explorer/res/bmp/185.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
BIN
base/shell/explorer/res/bmp/186.bmp
Normal file
BIN
base/shell/explorer/res/bmp/186.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
BIN
base/shell/explorer/res/bmp/187.bmp
Normal file
BIN
base/shell/explorer/res/bmp/187.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
BIN
base/shell/explorer/res/bmp/188.bmp
Normal file
BIN
base/shell/explorer/res/bmp/188.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
BIN
base/shell/explorer/res/bmp/189.bmp
Normal file
BIN
base/shell/explorer/res/bmp/189.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
@@ -39,15 +39,21 @@
|
||||
#define IDB_TASKBARPROP_NOLOCK_GROUP_NOQL 151
|
||||
#define IDB_TASKBARPROP_LOCK_NOGROUP_NOQL 152
|
||||
#define IDB_TASKBARPROP_NOLOCK_NOGROUP_NOQL 153
|
||||
#define IDB_SYSTRAYPROP_SHOW_SECONDS 154
|
||||
#define IDB_SYSTRAYPROP_HIDE_SECONDS 155
|
||||
#define IDB_SYSTRAYPROP_SHOW_SECONDS_NODESK 154
|
||||
#define IDB_SYSTRAYPROP_HIDE_SECONDS_NODESK 155
|
||||
#define IDB_STARTMENU 158
|
||||
#define IDB_STARTPREVIEW 170
|
||||
#define IDB_STARTPREVIEW_CLASSIC 171
|
||||
#define IDB_SYSTRAYPROP_HIDE_CLOCK 180
|
||||
#define IDB_SYSTRAYPROP_HIDE_NOCLOCK 181
|
||||
#define IDB_SYSTRAYPROP_SHOW_CLOCK 182
|
||||
#define IDB_SYSTRAYPROP_SHOW_NOCLOCK 183
|
||||
#define IDB_SYSTRAYPROP_HIDE_CLOCK_NODESK 180
|
||||
#define IDB_SYSTRAYPROP_HIDE_NOCLOCK_NODESK 181
|
||||
#define IDB_SYSTRAYPROP_SHOW_CLOCK_NODESK 182
|
||||
#define IDB_SYSTRAYPROP_SHOW_NOCLOCK_NODESK 183
|
||||
#define IDB_SYSTRAYPROP_SHOW_SECONDS_DESK 184
|
||||
#define IDB_SYSTRAYPROP_HIDE_SECONDS_DESK 185
|
||||
#define IDB_SYSTRAYPROP_HIDE_CLOCK_DESK 186
|
||||
#define IDB_SYSTRAYPROP_HIDE_NOCLOCK_DESK 187
|
||||
#define IDB_SYSTRAYPROP_SHOW_CLOCK_DESK 188
|
||||
#define IDB_SYSTRAYPROP_SHOW_NOCLOCK_DESK 189
|
||||
|
||||
/*******************************************************************************\
|
||||
|* Menu Resources *|
|
||||
|
@@ -230,13 +230,14 @@ class CNotifySettingsPage : public CPropertyPageImpl<CNotifySettingsPage>
|
||||
private:
|
||||
HBITMAP m_hbmpTray;
|
||||
HWND m_hwndTaskbar;
|
||||
static const WORD wImageIdLookupTable[2][2][2][2];
|
||||
|
||||
void _UpdateDialog()
|
||||
{
|
||||
BOOL bShowClock = IsDlgButtonChecked(IDC_TASKBARPROP_CLOCK);
|
||||
BOOL bShowSeconds = IsDlgButtonChecked(IDC_TASKBARPROP_SECONDS);
|
||||
BOOL bHideInactive = IsDlgButtonChecked(IDC_TASKBARPROP_HIDEICONS);
|
||||
UINT uImageId;
|
||||
BOOL bShowDesktopButton = IsDlgButtonChecked(IDC_TASKBARPROP_DESKTOP);
|
||||
|
||||
HWND hwndCustomizeNotifyButton = GetDlgItem(IDC_TASKBARPROP_ICONCUST);
|
||||
HWND hwndSeconds = GetDlgItem(IDC_TASKBARPROP_SECONDS);
|
||||
@@ -246,19 +247,7 @@ private:
|
||||
::EnableWindow(hwndSeconds, bShowClock);
|
||||
if (!bShowSeconds)
|
||||
CheckDlgButton(IDC_TASKBARPROP_SECONDS, BST_UNCHECKED);
|
||||
|
||||
if (bHideInactive && bShowClock && bShowSeconds)
|
||||
uImageId = IDB_SYSTRAYPROP_HIDE_SECONDS;
|
||||
else if (bHideInactive && bShowClock && !bShowSeconds)
|
||||
uImageId = IDB_SYSTRAYPROP_HIDE_CLOCK;
|
||||
else if (bHideInactive && !bShowClock)
|
||||
uImageId = IDB_SYSTRAYPROP_HIDE_NOCLOCK;
|
||||
else if (!bHideInactive && bShowClock && bShowSeconds)
|
||||
uImageId = IDB_SYSTRAYPROP_SHOW_SECONDS;
|
||||
else if (!bHideInactive && bShowClock && !bShowSeconds)
|
||||
uImageId = IDB_SYSTRAYPROP_SHOW_CLOCK;
|
||||
else if (!bHideInactive && !bShowClock)
|
||||
uImageId = IDB_SYSTRAYPROP_SHOW_NOCLOCK;
|
||||
UINT uImageId = wImageIdLookupTable[bShowClock][bShowSeconds][bHideInactive][bShowDesktopButton];
|
||||
|
||||
SetBitmap(hwndTrayBitmap, &m_hbmpTray, uImageId);
|
||||
}
|
||||
@@ -324,6 +313,30 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
const WORD CNotifySettingsPage::wImageIdLookupTable[2][2][2][2] =
|
||||
{
|
||||
{
|
||||
{
|
||||
{IDB_SYSTRAYPROP_SHOW_NOCLOCK_NODESK, IDB_SYSTRAYPROP_SHOW_NOCLOCK_DESK},
|
||||
{IDB_SYSTRAYPROP_HIDE_NOCLOCK_NODESK, IDB_SYSTRAYPROP_HIDE_NOCLOCK_DESK}
|
||||
},
|
||||
{
|
||||
{IDB_SYSTRAYPROP_SHOW_NOCLOCK_NODESK, IDB_SYSTRAYPROP_SHOW_NOCLOCK_DESK},
|
||||
{IDB_SYSTRAYPROP_HIDE_NOCLOCK_NODESK, IDB_SYSTRAYPROP_HIDE_NOCLOCK_DESK}
|
||||
}
|
||||
},
|
||||
{
|
||||
{
|
||||
{IDB_SYSTRAYPROP_SHOW_CLOCK_NODESK, IDB_SYSTRAYPROP_SHOW_CLOCK_DESK},
|
||||
{IDB_SYSTRAYPROP_HIDE_CLOCK_NODESK, IDB_SYSTRAYPROP_HIDE_CLOCK_DESK}
|
||||
},
|
||||
{
|
||||
{IDB_SYSTRAYPROP_SHOW_SECONDS_NODESK, IDB_SYSTRAYPROP_SHOW_SECONDS_DESK},
|
||||
{IDB_SYSTRAYPROP_HIDE_SECONDS_NODESK, IDB_SYSTRAYPROP_HIDE_SECONDS_DESK}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
static int CALLBACK
|
||||
PropSheetProc(HWND hwndDlg, UINT uMsg, LPARAM lParam)
|
||||
{
|
||||
|
@@ -2454,6 +2454,9 @@ ChangePos:
|
||||
CheckTrayWndPosition();
|
||||
}
|
||||
|
||||
if (m_DesktopWnd)
|
||||
::SendMessageW(m_DesktopWnd, uMsg, wParam, lParam);
|
||||
|
||||
if (m_StartMenuPopup && lstrcmpiW((LPCWSTR)lParam, L"TraySettings") == 0)
|
||||
{
|
||||
HideStartMenu();
|
||||
|
@@ -852,6 +852,105 @@ ScmDeleteServiceRecord(PSERVICE lpService)
|
||||
DPRINT("Done\n");
|
||||
}
|
||||
|
||||
DWORD
|
||||
Int_EnumDependentServicesW(HKEY hServicesKey,
|
||||
PSERVICE lpService,
|
||||
DWORD dwServiceState,
|
||||
PSERVICE *lpServices,
|
||||
LPDWORD pcbBytesNeeded,
|
||||
LPDWORD lpServicesReturned);
|
||||
|
||||
DWORD ScmDeleteService(PSERVICE lpService)
|
||||
{
|
||||
DWORD dwError;
|
||||
DWORD pcbBytesNeeded = 0;
|
||||
DWORD dwServicesReturned = 0;
|
||||
HKEY hServicesKey;
|
||||
|
||||
ASSERT(lpService->RefCount == 0);
|
||||
|
||||
/* Open the Services Reg key */
|
||||
dwError = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
|
||||
L"System\\CurrentControlSet\\Services",
|
||||
0,
|
||||
KEY_SET_VALUE | KEY_READ,
|
||||
&hServicesKey);
|
||||
if (dwError != ERROR_SUCCESS)
|
||||
{
|
||||
DPRINT1("Failed to open services key\n");
|
||||
return dwError;
|
||||
}
|
||||
|
||||
/* Call the function with NULL, just to get bytes we need */
|
||||
Int_EnumDependentServicesW(hServicesKey,
|
||||
lpService,
|
||||
SERVICE_ACTIVE,
|
||||
NULL,
|
||||
&pcbBytesNeeded,
|
||||
&dwServicesReturned);
|
||||
|
||||
/* If pcbBytesNeeded returned a value then there are services running that are dependent on this service */
|
||||
if (pcbBytesNeeded)
|
||||
{
|
||||
DPRINT1("Deletion failed due to running dependencies\n");
|
||||
RegCloseKey(hServicesKey);
|
||||
return ERROR_DEPENDENT_SERVICES_RUNNING;
|
||||
}
|
||||
|
||||
/* There are no references and no running dependencies,
|
||||
it is now safe to delete the service */
|
||||
|
||||
/* Delete the Service Key */
|
||||
dwError = ScmDeleteRegKey(hServicesKey, lpService->lpServiceName);
|
||||
|
||||
RegCloseKey(hServicesKey);
|
||||
|
||||
if (dwError != ERROR_SUCCESS)
|
||||
{
|
||||
DPRINT1("Failed to delete the Service Registry key\n");
|
||||
return dwError;
|
||||
}
|
||||
|
||||
/* Delete the Service */
|
||||
ScmDeleteServiceRecord(lpService);
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
/*
|
||||
* This function allows the caller to be sure that the service won't be freed unexpectedly.
|
||||
* In order to be sure that lpService will be valid until the reference is added
|
||||
* the caller needs to hold the database lock.
|
||||
* A running service will keep a reference for the whole time it is not SERVICE_STOPPED.
|
||||
* A service handle will also keep a reference to a service. Keeping a reference is
|
||||
* really needed so that ScmControlService can be called without keeping the database locked.
|
||||
* This means that eventually the correct order of operations to send a control message to
|
||||
* a service looks like: lock, reference, unlock, send control, lock, dereference, unlock.
|
||||
*/
|
||||
DWORD
|
||||
ScmReferenceService(PSERVICE lpService)
|
||||
{
|
||||
return InterlockedIncrement(&lpService->RefCount);
|
||||
}
|
||||
|
||||
/* This function must be called with the database lock held exclusively as
|
||||
it can end up deleting the service */
|
||||
DWORD
|
||||
ScmDereferenceService(PSERVICE lpService)
|
||||
{
|
||||
DWORD ref;
|
||||
|
||||
ASSERT(lpService->RefCount > 0);
|
||||
|
||||
ref = InterlockedDecrement(&lpService->RefCount);
|
||||
|
||||
if (ref == 0 && lpService->bDeleted &&
|
||||
lpService->Status.dwCurrentState == SERVICE_STOPPED)
|
||||
{
|
||||
ScmDeleteService(lpService);
|
||||
}
|
||||
return ref;
|
||||
}
|
||||
|
||||
static DWORD
|
||||
CreateServiceListEntry(LPCWSTR lpServiceName,
|
||||
@@ -1310,6 +1409,10 @@ ScmGetBootAndSystemDriverState(VOID)
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* ScmControlService must never be called with the database lock being held.
|
||||
* The service passed must always be referenced instead.
|
||||
*/
|
||||
DWORD
|
||||
ScmControlService(HANDLE hControlPipe,
|
||||
PWSTR pServiceName,
|
||||
@@ -1327,7 +1430,7 @@ ScmControlService(HANDLE hControlPipe,
|
||||
BOOL bResult;
|
||||
OVERLAPPED Overlapped = {0};
|
||||
|
||||
DPRINT("ScmControlService() called\n");
|
||||
DPRINT("ScmControlService(%S, %d) called\n", pServiceName, dwControl);
|
||||
|
||||
/* Acquire the service control critical section, to synchronize requests */
|
||||
EnterCriticalSection(&ControlServiceCriticalSection);
|
||||
@@ -1364,23 +1467,24 @@ ScmControlService(HANDLE hControlPipe,
|
||||
&Overlapped);
|
||||
if (bResult == FALSE)
|
||||
{
|
||||
DPRINT("WriteFile() returned FALSE\n");
|
||||
DPRINT1("WriteFile(%S, %d) returned FALSE\n", pServiceName, dwControl);
|
||||
|
||||
dwError = GetLastError();
|
||||
if (dwError == ERROR_IO_PENDING)
|
||||
{
|
||||
DPRINT("dwError: ERROR_IO_PENDING\n");
|
||||
DPRINT("(%S, %d) dwError: ERROR_IO_PENDING\n", pServiceName, dwControl);
|
||||
|
||||
dwError = WaitForSingleObject(hControlPipe,
|
||||
PipeTimeout);
|
||||
DPRINT("WaitForSingleObject() returned %lu\n", dwError);
|
||||
DPRINT("WaitForSingleObject(%S, %d) returned %lu\n", pServiceName, dwControl, dwError);
|
||||
|
||||
if (dwError == WAIT_TIMEOUT)
|
||||
{
|
||||
DPRINT1("WaitForSingleObject(%S, %d) timed out\n", pServiceName, dwControl, dwError);
|
||||
bResult = CancelIo(hControlPipe);
|
||||
if (bResult == FALSE)
|
||||
{
|
||||
DPRINT1("CancelIo() failed (Error: %lu)\n", GetLastError());
|
||||
DPRINT1("CancelIo(%S, %d) failed (Error: %lu)\n", pServiceName, dwControl, GetLastError());
|
||||
}
|
||||
|
||||
dwError = ERROR_SERVICE_REQUEST_TIMEOUT;
|
||||
@@ -1395,7 +1499,7 @@ ScmControlService(HANDLE hControlPipe,
|
||||
if (bResult == FALSE)
|
||||
{
|
||||
dwError = GetLastError();
|
||||
DPRINT1("GetOverlappedResult() failed (Error %lu)\n", dwError);
|
||||
DPRINT1("GetOverlappedResult(%S, %d) failed (Error %lu)\n", pServiceName, dwControl, dwError);
|
||||
|
||||
goto Done;
|
||||
}
|
||||
@@ -1403,7 +1507,7 @@ ScmControlService(HANDLE hControlPipe,
|
||||
}
|
||||
else
|
||||
{
|
||||
DPRINT1("WriteFile() failed (Error %lu)\n", dwError);
|
||||
DPRINT1("WriteFile(%S, %d) failed (Error %lu)\n", pServiceName, dwControl, dwError);
|
||||
goto Done;
|
||||
}
|
||||
}
|
||||
@@ -1418,23 +1522,24 @@ ScmControlService(HANDLE hControlPipe,
|
||||
&Overlapped);
|
||||
if (bResult == FALSE)
|
||||
{
|
||||
DPRINT("ReadFile() returned FALSE\n");
|
||||
DPRINT1("ReadFile(%S, %d) returned FALSE\n", pServiceName, dwControl);
|
||||
|
||||
dwError = GetLastError();
|
||||
if (dwError == ERROR_IO_PENDING)
|
||||
{
|
||||
DPRINT("dwError: ERROR_IO_PENDING\n");
|
||||
DPRINT("(%S, %d) dwError: ERROR_IO_PENDING\n", pServiceName, dwControl);
|
||||
|
||||
dwError = WaitForSingleObject(hControlPipe,
|
||||
PipeTimeout);
|
||||
DPRINT("WaitForSingleObject() returned %lu\n", dwError);
|
||||
DPRINT("WaitForSingleObject(%S, %d) returned %lu\n", pServiceName, dwControl, dwError);
|
||||
|
||||
if (dwError == WAIT_TIMEOUT)
|
||||
{
|
||||
DPRINT1("WaitForSingleObject(%S, %d) timed out\n", pServiceName, dwControl, dwError);
|
||||
bResult = CancelIo(hControlPipe);
|
||||
if (bResult == FALSE)
|
||||
{
|
||||
DPRINT1("CancelIo() failed (Error: %lu)\n", GetLastError());
|
||||
DPRINT1("CancelIo(%S, %d) failed (Error: %lu)\n", pServiceName, dwControl, GetLastError());
|
||||
}
|
||||
|
||||
dwError = ERROR_SERVICE_REQUEST_TIMEOUT;
|
||||
@@ -1449,7 +1554,7 @@ ScmControlService(HANDLE hControlPipe,
|
||||
if (bResult == FALSE)
|
||||
{
|
||||
dwError = GetLastError();
|
||||
DPRINT1("GetOverlappedResult() failed (Error %lu)\n", dwError);
|
||||
DPRINT1("GetOverlappedResult(%S, %d) failed (Error %lu)\n", pServiceName, dwControl, dwError);
|
||||
|
||||
goto Done;
|
||||
}
|
||||
@@ -1457,7 +1562,7 @@ ScmControlService(HANDLE hControlPipe,
|
||||
}
|
||||
else
|
||||
{
|
||||
DPRINT1("ReadFile() failed (Error %lu)\n", dwError);
|
||||
DPRINT1("ReadFile(%S, %d) failed (Error %lu)\n", pServiceName, dwControl, dwError);
|
||||
goto Done;
|
||||
}
|
||||
}
|
||||
@@ -1475,7 +1580,7 @@ Done:
|
||||
|
||||
LeaveCriticalSection(&ControlServiceCriticalSection);
|
||||
|
||||
DPRINT("ScmControlService() done\n");
|
||||
DPRINT("ScmControlService(%S, %d) done\n", pServiceName, dwControl);
|
||||
|
||||
return dwError;
|
||||
}
|
||||
@@ -2052,6 +2157,7 @@ ScmLoadService(PSERVICE Service,
|
||||
{
|
||||
Service->Status.dwCurrentState = SERVICE_START_PENDING;
|
||||
Service->Status.dwControlsAccepted = 0;
|
||||
ScmReferenceService(Service);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@@ -777,9 +777,8 @@ ScmCanonDriverImagePath(DWORD dwStartType,
|
||||
}
|
||||
|
||||
|
||||
/* Internal recursive function */
|
||||
/* Need to search for every dependency on every service */
|
||||
static DWORD
|
||||
/* Recursively search for every dependency on every service */
|
||||
DWORD
|
||||
Int_EnumDependentServicesW(HKEY hServicesKey,
|
||||
PSERVICE lpService,
|
||||
DWORD dwServiceState,
|
||||
@@ -939,10 +938,6 @@ RCloseServiceHandle(
|
||||
PMANAGER_HANDLE hManager;
|
||||
PSERVICE_HANDLE hService;
|
||||
PSERVICE lpService;
|
||||
HKEY hServicesKey;
|
||||
DWORD dwError;
|
||||
DWORD pcbBytesNeeded = 0;
|
||||
DWORD dwServicesReturned = 0;
|
||||
|
||||
DPRINT("RCloseServiceHandle() called\n");
|
||||
|
||||
@@ -986,68 +981,9 @@ RCloseServiceHandle(
|
||||
HeapFree(GetProcessHeap(), 0, hService);
|
||||
hService = NULL;
|
||||
|
||||
ASSERT(lpService->dwRefCount > 0);
|
||||
|
||||
lpService->dwRefCount--;
|
||||
DPRINT("CloseServiceHandle - lpService->dwRefCount %u\n",
|
||||
lpService->dwRefCount);
|
||||
|
||||
if (lpService->dwRefCount == 0)
|
||||
{
|
||||
/* If this service has been marked for deletion */
|
||||
if (lpService->bDeleted &&
|
||||
lpService->Status.dwCurrentState == SERVICE_STOPPED)
|
||||
{
|
||||
/* Open the Services Reg key */
|
||||
dwError = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
|
||||
L"System\\CurrentControlSet\\Services",
|
||||
0,
|
||||
KEY_SET_VALUE | KEY_READ,
|
||||
&hServicesKey);
|
||||
if (dwError != ERROR_SUCCESS)
|
||||
{
|
||||
DPRINT("Failed to open services key\n");
|
||||
ScmUnlockDatabase();
|
||||
return dwError;
|
||||
}
|
||||
|
||||
/* Call the internal function with NULL, just to get bytes we need */
|
||||
Int_EnumDependentServicesW(hServicesKey,
|
||||
lpService,
|
||||
SERVICE_ACTIVE,
|
||||
NULL,
|
||||
&pcbBytesNeeded,
|
||||
&dwServicesReturned);
|
||||
|
||||
/* If pcbBytesNeeded returned a value then there are services running that are dependent on this service */
|
||||
if (pcbBytesNeeded)
|
||||
{
|
||||
DPRINT("Deletion failed due to running dependencies\n");
|
||||
RegCloseKey(hServicesKey);
|
||||
ScmUnlockDatabase();
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
/* There are no references and no running dependencies,
|
||||
it is now safe to delete the service */
|
||||
|
||||
/* Delete the Service Key */
|
||||
dwError = ScmDeleteRegKey(hServicesKey,
|
||||
lpService->lpServiceName);
|
||||
|
||||
RegCloseKey(hServicesKey);
|
||||
|
||||
if (dwError != ERROR_SUCCESS)
|
||||
{
|
||||
DPRINT("Failed to Delete the Service Registry key\n");
|
||||
ScmUnlockDatabase();
|
||||
return dwError;
|
||||
}
|
||||
|
||||
/* Delete the Service */
|
||||
ScmDeleteServiceRecord(lpService);
|
||||
}
|
||||
}
|
||||
DPRINT("Closing service %S with %d references\n", lpService->lpServiceName, lpService->RefCount);
|
||||
ScmDereferenceService(lpService);
|
||||
|
||||
ScmUnlockDatabase();
|
||||
|
||||
@@ -1672,6 +1608,81 @@ ScmIsValidServiceState(DWORD dwCurrentState)
|
||||
}
|
||||
}
|
||||
|
||||
static
|
||||
DWORD
|
||||
WINAPI
|
||||
ScmStopThread(PVOID pParam)
|
||||
{
|
||||
PSERVICE lpService = (PSERVICE)pParam;
|
||||
WCHAR szLogBuffer[80];
|
||||
LPCWSTR lpLogStrings[2];
|
||||
|
||||
/* Check if we are about to stop this service */
|
||||
if (lpService->lpImage->dwImageRunCount == 1)
|
||||
{
|
||||
/* Stop the dispatcher thread.
|
||||
* We must not send a control message while holding the database lock, otherwise it can cause timeouts
|
||||
* We are sure that the service won't be deleted in the meantime because we still have a reference to it. */
|
||||
DPRINT("Stopping the dispatcher thread for service %S\n", lpService->lpServiceName);
|
||||
ScmControlService(lpService->lpImage->hControlPipe,
|
||||
L"",
|
||||
(SERVICE_STATUS_HANDLE)lpService,
|
||||
SERVICE_CONTROL_STOP);
|
||||
}
|
||||
|
||||
/* Lock the service database exclusively */
|
||||
ScmLockDatabaseExclusive();
|
||||
|
||||
DPRINT("Service %S image count:%d\n", lpService->lpServiceName, lpService->lpImage->dwImageRunCount);
|
||||
|
||||
/* Decrement the image run counter */
|
||||
lpService->lpImage->dwImageRunCount--;
|
||||
|
||||
/* If we just stopped the last running service... */
|
||||
if (lpService->lpImage->dwImageRunCount == 0)
|
||||
{
|
||||
/* Remove the service image */
|
||||
DPRINT("Removing service image for %S\n", lpService->lpServiceName);
|
||||
ScmRemoveServiceImage(lpService->lpImage);
|
||||
lpService->lpImage = NULL;
|
||||
}
|
||||
|
||||
/* Report the results of the status change here */
|
||||
if (lpService->Status.dwWin32ExitCode != ERROR_SUCCESS)
|
||||
{
|
||||
/* Log a failed service stop */
|
||||
StringCchPrintfW(szLogBuffer, ARRAYSIZE(szLogBuffer),
|
||||
L"%lu", lpService->Status.dwWin32ExitCode);
|
||||
lpLogStrings[0] = lpService->lpDisplayName;
|
||||
lpLogStrings[1] = szLogBuffer;
|
||||
|
||||
ScmLogEvent(EVENT_SERVICE_EXIT_FAILED,
|
||||
EVENTLOG_ERROR_TYPE,
|
||||
ARRAYSIZE(lpLogStrings),
|
||||
lpLogStrings);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Log a successful service status change */
|
||||
LoadStringW(GetModuleHandle(NULL), IDS_SERVICE_STOPPED, szLogBuffer, ARRAYSIZE(szLogBuffer));
|
||||
lpLogStrings[0] = lpService->lpDisplayName;
|
||||
lpLogStrings[1] = szLogBuffer;
|
||||
|
||||
ScmLogEvent(EVENT_SERVICE_STATUS_SUCCESS,
|
||||
EVENTLOG_INFORMATION_TYPE,
|
||||
ARRAYSIZE(lpLogStrings),
|
||||
lpLogStrings);
|
||||
}
|
||||
|
||||
/* Remove the reference that was added when the service started */
|
||||
DPRINT("Service %S has %d references while stoping\n", lpService->lpServiceName, lpService->RefCount);
|
||||
ScmDereferenceService(lpService);
|
||||
|
||||
/* Unlock the service database */
|
||||
ScmUnlockDatabase();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Function 7 */
|
||||
DWORD
|
||||
@@ -1754,58 +1765,62 @@ RSetServiceStatus(
|
||||
/* Restore the previous service type */
|
||||
lpService->Status.dwServiceType = dwPreviousType;
|
||||
|
||||
/* Dereference a stopped service */
|
||||
if ((lpServiceStatus->dwServiceType & SERVICE_WIN32) &&
|
||||
(lpServiceStatus->dwCurrentState == SERVICE_STOPPED))
|
||||
DPRINT("Service %S changed state %d to %d\n", lpService->lpServiceName, dwPreviousState, lpServiceStatus->dwCurrentState);
|
||||
|
||||
if (lpServiceStatus->dwCurrentState != SERVICE_STOPPED &&
|
||||
dwPreviousState == SERVICE_STOPPED)
|
||||
{
|
||||
/* Decrement the image run counter */
|
||||
lpService->lpImage->dwImageRunCount--;
|
||||
/* Keep a reference on all non stopped services */
|
||||
ScmReferenceService(lpService);
|
||||
DPRINT("Service %S has %d references after starting\n", lpService->lpServiceName, lpService->RefCount);
|
||||
}
|
||||
|
||||
/* If we just stopped the last running service... */
|
||||
if (lpService->lpImage->dwImageRunCount == 0)
|
||||
/* Check if the service just stopped */
|
||||
if (lpServiceStatus->dwCurrentState == SERVICE_STOPPED &&
|
||||
dwPreviousState != SERVICE_STOPPED)
|
||||
{
|
||||
HANDLE hStopThread;
|
||||
DWORD dwStopThreadId;
|
||||
DPRINT("Service %S, currentstate: %d, prev: %d\n", lpService->lpServiceName, lpServiceStatus->dwCurrentState, dwPreviousState);
|
||||
|
||||
/*
|
||||
* The service just changed its status to stopped.
|
||||
* Create a thread that will complete the stop sequence.
|
||||
* This thread will remove the reference that was added when the service started.
|
||||
* This will ensure that the service will remain valid as long as this reference is still held.
|
||||
*/
|
||||
hStopThread = CreateThread(NULL,
|
||||
0,
|
||||
ScmStopThread,
|
||||
(LPVOID)lpService,
|
||||
0,
|
||||
&dwStopThreadId);
|
||||
if (hStopThread == NULL)
|
||||
{
|
||||
/* Stop the dispatcher thread */
|
||||
ScmControlService(lpService->lpImage->hControlPipe,
|
||||
L"",
|
||||
(SERVICE_STATUS_HANDLE)lpService,
|
||||
SERVICE_CONTROL_STOP);
|
||||
|
||||
/* Remove the service image */
|
||||
ScmRemoveServiceImage(lpService->lpImage);
|
||||
lpService->lpImage = NULL;
|
||||
DPRINT1("Failed to create thread to complete service stop\n");
|
||||
/* We can't leave without releasing the reference.
|
||||
* We also can't remove it without holding the lock. */
|
||||
ScmDereferenceService(lpService);
|
||||
DPRINT1("Service %S has %d references after stop\n", lpService->lpServiceName, lpService->RefCount);
|
||||
}
|
||||
else
|
||||
{
|
||||
CloseHandle(hStopThread);
|
||||
}
|
||||
}
|
||||
|
||||
/* Unlock the service database */
|
||||
ScmUnlockDatabase();
|
||||
|
||||
if ((lpServiceStatus->dwCurrentState == SERVICE_STOPPED) &&
|
||||
(dwPreviousState != SERVICE_STOPPED) &&
|
||||
(lpServiceStatus->dwWin32ExitCode != ERROR_SUCCESS))
|
||||
{
|
||||
/* Log a failed service stop */
|
||||
StringCchPrintfW(szLogBuffer, ARRAYSIZE(szLogBuffer),
|
||||
L"%lu", lpServiceStatus->dwWin32ExitCode);
|
||||
lpLogStrings[0] = lpService->lpDisplayName;
|
||||
lpLogStrings[1] = szLogBuffer;
|
||||
/* Don't log any events here regarding a service stop as it can become invalid at any time */
|
||||
|
||||
ScmLogEvent(EVENT_SERVICE_EXIT_FAILED,
|
||||
EVENTLOG_ERROR_TYPE,
|
||||
2,
|
||||
lpLogStrings);
|
||||
}
|
||||
else if (lpServiceStatus->dwCurrentState != dwPreviousState &&
|
||||
(lpServiceStatus->dwCurrentState == SERVICE_STOPPED ||
|
||||
lpServiceStatus->dwCurrentState == SERVICE_RUNNING ||
|
||||
lpServiceStatus->dwCurrentState == SERVICE_PAUSED))
|
||||
if (lpServiceStatus->dwCurrentState != dwPreviousState &&
|
||||
(lpServiceStatus->dwCurrentState == SERVICE_RUNNING ||
|
||||
lpServiceStatus->dwCurrentState == SERVICE_PAUSED))
|
||||
{
|
||||
/* Log a successful service status change */
|
||||
switch(lpServiceStatus->dwCurrentState)
|
||||
{
|
||||
case SERVICE_STOPPED:
|
||||
uID = IDS_SERVICE_STOPPED;
|
||||
break;
|
||||
|
||||
case SERVICE_RUNNING:
|
||||
uID = IDS_SERVICE_RUNNING;
|
||||
break;
|
||||
@@ -2217,7 +2232,7 @@ RChangeServiceConfigW(
|
||||
DPRINT1("ScmDecryptPassword failed (Error %lu)\n", dwError);
|
||||
goto done;
|
||||
}
|
||||
DPRINT1("Clear text password: %S\n", lpClearTextPassword);
|
||||
DPRINT("Clear text password: %S\n", lpClearTextPassword);
|
||||
|
||||
/* Write the password */
|
||||
dwError = ScmSetServicePassword(lpService->szServiceName,
|
||||
@@ -2641,12 +2656,12 @@ RCreateServiceW(
|
||||
if (dwError != ERROR_SUCCESS)
|
||||
goto done;
|
||||
|
||||
lpService->dwRefCount = 1;
|
||||
ScmReferenceService(lpService);
|
||||
|
||||
/* Get the service tag (if Win32) */
|
||||
ScmGenerateServiceTag(lpService);
|
||||
|
||||
DPRINT("CreateService - lpService->dwRefCount %u\n", lpService->dwRefCount);
|
||||
DPRINT("CreateService - lpService->RefCount %u\n", lpService->RefCount);
|
||||
|
||||
done:
|
||||
/* Unlock the service database */
|
||||
@@ -2981,8 +2996,8 @@ ROpenServiceW(
|
||||
goto Done;
|
||||
}
|
||||
|
||||
lpService->dwRefCount++;
|
||||
DPRINT("OpenService - lpService->dwRefCount %u\n",lpService->dwRefCount);
|
||||
ScmReferenceService(lpService);
|
||||
DPRINT("OpenService %S - lpService->RefCount %u\n", lpService->lpServiceName, lpService->RefCount);
|
||||
|
||||
*lpServiceHandle = (SC_RPC_HANDLE)hHandle;
|
||||
DPRINT("*hService = %p\n", *lpServiceHandle);
|
||||
@@ -6725,7 +6740,7 @@ RI_ScValidatePnPService(
|
||||
hManager = ScmGetServiceManagerFromHandle(hSCManager);
|
||||
if (hManager == NULL)
|
||||
{
|
||||
DPRINT1("Invalid handle!\n");
|
||||
DPRINT1("Invalid handle\n");
|
||||
return ERROR_INVALID_HANDLE;
|
||||
}
|
||||
|
||||
@@ -6735,7 +6750,7 @@ RI_ScValidatePnPService(
|
||||
if (!RtlAreAllAccessesGranted(hManager->Handle.DesiredAccess,
|
||||
SC_MANAGER_CONNECT))
|
||||
{
|
||||
DPRINT1("No SC_MANAGER_CONNECT access!\n");
|
||||
DPRINT1("No SC_MANAGER_CONNECT access\n");
|
||||
return ERROR_ACCESS_DENIED;
|
||||
}
|
||||
|
||||
|
@@ -65,7 +65,7 @@ typedef struct _SERVICE
|
||||
PSERVICE_IMAGE lpImage;
|
||||
BOOL bDeleted;
|
||||
DWORD dwResumeCount;
|
||||
DWORD dwRefCount;
|
||||
LONG RefCount;
|
||||
|
||||
SERVICE_STATUS Status;
|
||||
DWORD dwStartType;
|
||||
@@ -186,6 +186,9 @@ DWORD ScmStartService(PSERVICE Service,
|
||||
DWORD argc,
|
||||
LPWSTR *argv);
|
||||
|
||||
DWORD ScmReferenceService(PSERVICE lpService);
|
||||
DWORD ScmDereferenceService(PSERVICE lpService);
|
||||
|
||||
VOID ScmRemoveServiceImage(PSERVICE_IMAGE pServiceImage);
|
||||
PSERVICE ScmGetServiceEntryByName(LPCWSTR lpServiceName);
|
||||
PSERVICE ScmGetServiceEntryByDisplayName(LPCWSTR lpDisplayName);
|
||||
|
@@ -1,21 +1,21 @@
|
||||
## efisys.bin
|
||||
|
||||
# EFI platform ID, used in environ/CMakelists.txt for bootmgfw filename naming also.
|
||||
if(ARCH STREQUAL "amd64")
|
||||
set(EFI_PLATFORM_ID "x64")
|
||||
elseif(ARCH STREQUAL "i386")
|
||||
if(NOT (SARCH STREQUAL "pc98" OR SARCH STREQUAL "xbox"))
|
||||
set(EFI_PLATFORM_ID "ia32")
|
||||
endif()
|
||||
elseif(ARCH STREQUAL "ia64")
|
||||
set(EFI_PLATFORM_ID "ia64")
|
||||
elseif(ARCH STREQUAL "arm")
|
||||
set(EFI_PLATFORM_ID "arm")
|
||||
elseif(ARCH STREQUAL "arm64")
|
||||
set(EFI_PLATFORM_ID "aa64")
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown ARCH '" ${ARCH} "', cannot generate a valid UEFI boot filename.")
|
||||
endif()
|
||||
# if(ARCH STREQUAL "amd64")
|
||||
# set(EFI_PLATFORM_ID "x64")
|
||||
# elseif(ARCH STREQUAL "i386")
|
||||
# if(NOT (SARCH STREQUAL "pc98" OR SARCH STREQUAL "xbox"))
|
||||
# set(EFI_PLATFORM_ID "ia32")
|
||||
# endif()
|
||||
# elseif(ARCH STREQUAL "ia64")
|
||||
# set(EFI_PLATFORM_ID "ia64")
|
||||
# elseif(ARCH STREQUAL "arm")
|
||||
# set(EFI_PLATFORM_ID "arm")
|
||||
# elseif(ARCH STREQUAL "arm64")
|
||||
# set(EFI_PLATFORM_ID "aa64")
|
||||
# else()
|
||||
# message(FATAL_ERROR "Unknown ARCH '" ${ARCH} "', cannot generate a valid UEFI boot filename.")
|
||||
# endif()
|
||||
|
||||
if(DEFINED EFI_PLATFORM_ID)
|
||||
add_custom_target(efisys
|
||||
|
@@ -59,16 +59,12 @@ LocaleID = 409
|
||||
; 1: ReactOS Workstation
|
||||
ProductOption = 0
|
||||
|
||||
; enable this section to automatically launch programs
|
||||
; Enable this section to automatically launch programs
|
||||
; after 3rd boot
|
||||
;
|
||||
; [GuiRunOnce]
|
||||
; %SystemRoot%\system32\cmd.exe
|
||||
; Enable the next line (+ the GuiRunOnce section) to enable the lautus theme
|
||||
; "rundll32.exe shell32.dll,Control_RunDLL desk.cpl desk,@Appearance /Action:ActivateMSTheme /file:%SYSTEMROOT%\Resources\themes\lautus\lautus.msstyles"
|
||||
|
||||
|
||||
; enable this section to change resolution / bpp
|
||||
; Enable this section to change resolution / bpp
|
||||
; setting a value to 0 or skipping it will leave it unchanged
|
||||
; [Display]
|
||||
; BitsPerPel = 32
|
||||
@@ -80,3 +76,7 @@ ProductOption = 0
|
||||
;[Env]
|
||||
;WINETEST_PLATFORM=reactos
|
||||
|
||||
; Enable this section to enable the default ReactOS theme
|
||||
[Shell]
|
||||
DefaultThemesOff = no
|
||||
CustomDefaultThemeFile = "%WINDIR%\Resources\Themes\Mizu\mizu.msstyles"
|
||||
|
@@ -64,9 +64,9 @@ HKCU,"Control Panel\Desktop","ScreenSaverIsSecure",2,"1"
|
||||
HKCU,"Control Panel\Desktop","ScreenSaveTimeOut",2,"600"
|
||||
HKCU,"Control Panel\Desktop","WaitToKillAppTimeout",2,"20000"
|
||||
HKCU,"Control Panel\Desktop","Pattern",2,"(None)"
|
||||
HKCU,"Control Panel\Desktop","Wallpaper",0x00000002,""
|
||||
HKCU,"Control Panel\Desktop","Wallpaper",0x00000002,"%SystemRoot%\Web\Wallpaper\Mizu (4x3).bmp"
|
||||
HKCU,"Control Panel\Desktop","TileWallpaper",2,"0"
|
||||
HKCU,"Control Panel\Desktop","WallpaperStyle",2,"2"
|
||||
HKCU,"Control Panel\Desktop","WallpaperStyle",2,"10"
|
||||
HKCU,"Control Panel\Desktop","FontSmoothing",2,"0"
|
||||
HKCU,"Control Panel\Desktop","FontSmoothingOrientation",0x00010003,0x00000001
|
||||
HKCU,"Control Panel\Desktop","FontSmoothingType",0x00010003,0x00000001
|
||||
|
@@ -1938,6 +1938,11 @@ HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows","USERProcessHandleQu
|
||||
; App Compat -- Enable on ReactOS
|
||||
;HKLM,"SOFTWARE\Policies\Microsoft\Windows\AppCompat","DisableEngine",0x00010003, 0x00000001
|
||||
|
||||
; App Compat -- for official Releases we do still disable the new heuristic introduced in master 0.4.13-dev-986-g029b8f2.
|
||||
; This will not automatically expose apisets based on apps manifests as we have too many gaps still in the apisets.
|
||||
; Adventurous users can set this to 0 to expose more Vista+ stuff, in return can OPT-OUT per app via shim "IgnoreManifestCompatVersion".
|
||||
HKLM,"SOFTWARE\Policies\Microsoft\Windows\AppCompat","DisableCompatGuidDetection",0x00010003, 0x00000001
|
||||
|
||||
;-------------------------------- STRINGS -------------------------------
|
||||
|
||||
[Strings]
|
||||
|
@@ -1190,25 +1190,27 @@ HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","InstallLanguage",0x0000000
|
||||
; If you add/uncomment an entry here, please also add the appropriate Language
|
||||
; in the previous section.
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale",,0x00000012
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000401",0x00000000,""
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000801",0x00000000,""
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000c01",0x00000000,""
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00001001",0x00000000,""
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00001401",0x00000000,""
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00001801",0x00000000,""
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00001c01",0x00000000,""
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00002001",0x00000000,""
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00002401",0x00000000,""
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00002801",0x00000000,""
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00002c01",0x00000000,""
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00003001",0x00000000,""
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00003401",0x00000000,""
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00003801",0x00000000,""
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00003c01",0x00000000,""
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00004001",0x00000000,""
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000401",0x00000000,"d"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000801",0x00000000,"d"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000c01",0x00000000,"d"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00001001",0x00000000,"d"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00001401",0x00000000,"d"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00001801",0x00000000,"d"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00001c01",0x00000000,"d"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00002001",0x00000000,"d"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00002401",0x00000000,"d"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00002801",0x00000000,"d"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00002c01",0x00000000,"d"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00003001",0x00000000,"d"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00003401",0x00000000,"d"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00003801",0x00000000,"d"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00003c01",0x00000000,"d"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00004001",0x00000000,"d"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000402",0x00000000,"5"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000403",0x00000000,"1"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000404",0x00000000,"9"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000c04",0x00000000,"9"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00001004",0x00000000,"a"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000804",0x00000000,"a"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000405",0x00000000,"2"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000406",0x00000000,"1"
|
||||
|
@@ -11,3 +11,7 @@ UnattendSetupEnabled = no
|
||||
; see hivesys.inf for available languages
|
||||
LocaleID = 409
|
||||
|
||||
; Enable this section to enable the default ReactOS theme
|
||||
[Shell]
|
||||
DefaultThemesOff = no
|
||||
CustomDefaultThemeFile = "%WINDIR%\Resources\Themes\Mizu\mizu.msstyles"
|
||||
|
@@ -80,6 +80,7 @@ Signature = "$Windows NT$"
|
||||
56 = winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.2600.2982_none_deadbeef
|
||||
57 = winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.2600.2982_none_deadbeef
|
||||
58 = winsxs\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.23038_none_deadbeef
|
||||
59 = winsxs\x86_reactos.apisets_6595b64144ccf1df_1.0.0.0_none_deadbeef
|
||||
60 = bin\suppl
|
||||
61 = winsxs\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.0.14393.0_none_deadbeef
|
||||
62 = Resources\Themes\Modern
|
||||
@@ -90,16 +91,19 @@ Signature = "$Windows NT$"
|
||||
67 = winsxs\amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.2600.2982_none_deadbeef
|
||||
68 = winsxs\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.2600.2982_none_deadbeef
|
||||
69 = winsxs\amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.23038_none_deadbeef
|
||||
70 = winsxs\amd64_reactos.apisets_6595b64144ccf1df_1.0.0.0_none_deadbeef
|
||||
71 = winsxs\amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.0.14393.0_none_deadbeef
|
||||
|
||||
72 = winsxs\arm_microsoft.windows.common-controls_6595b64144ccf1df_5.82.2600.2982_none_deadbeef
|
||||
73 = winsxs\arm_microsoft.windows.common-controls_6595b64144ccf1df_6.0.2600.2982_none_deadbeef
|
||||
74 = winsxs\arm_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.23038_none_deadbeef
|
||||
75 = winsxs\arm_reactos.apisets_6595b64144ccf1df_1.0.0.0_none_deadbeef
|
||||
76 = winsxs\arm_microsoft.windows.gdiplus_6595b64144ccf1df_1.0.14393.0_none_deadbeef
|
||||
|
||||
77 = winsxs\arm64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.2600.2982_none_deadbeef
|
||||
78 = winsxs\arm64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.2600.2982_none_deadbeef
|
||||
79 = winsxs\arm64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.23038_none_deadbeef
|
||||
80 = winsxs\arm64_reactos.apisets_6595b64144ccf1df_1.0.0.0_none_deadbeef
|
||||
81 = winsxs\arm64_microsoft.windows.gdiplus_6595b64144ccf1df_1.0.14393.0_none_deadbeef
|
||||
|
||||
.InfEnd
|
||||
|
@@ -1,5 +1,6 @@
|
||||
|
||||
add_subdirectory(3rdparty)
|
||||
add_subdirectory(apisets)
|
||||
add_subdirectory(appcompat)
|
||||
add_subdirectory(cpl)
|
||||
add_subdirectory(directx)
|
||||
|
256
dll/apisets/CMakeLists.txt
Normal file
256
dll/apisets/CMakeLists.txt
Normal file
@@ -0,0 +1,256 @@
|
||||
|
||||
# This file is generated by update.py, please edit CMakeLists.txt.in instead
|
||||
# Generated from wine-3.20-144-g2ef62f9085
|
||||
|
||||
project(apisets)
|
||||
|
||||
function (add_apiset apiset_name baseaddress)
|
||||
spec2def(${apiset_name}.dll ${apiset_name}.spec ADD_IMPORTLIB)
|
||||
|
||||
add_definitions(
|
||||
-D_CTYPE_DISABLE_MACROS
|
||||
-D_NO_INLINING
|
||||
-D__CRT__NO_INLINE
|
||||
-D__STDC_WANT_SECURE_LIB__=0
|
||||
-D_INC_STRING
|
||||
-D_CTYPE_DEFINED
|
||||
-D_WCTYPE_DEFINED
|
||||
-D_CRT_ERRNO_DEFINED)
|
||||
|
||||
add_library(${apiset_name} MODULE
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${apiset_name}_stubs.c
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${apiset_name}.def)
|
||||
|
||||
add_dependencies(${apiset_name} xdk)
|
||||
set_module_type(${apiset_name} module UNICODE IMAGEBASE ${baseaddress})
|
||||
|
||||
if(NOT MSVC)
|
||||
target_compile_options(${apiset_name} PRIVATE -fno-builtin)
|
||||
else()
|
||||
target_compile_options(${apiset_name} PRIVATE /wd4026 /wd4273 /Oi-)
|
||||
endif()
|
||||
|
||||
add_importlibs(${apiset_name} ${ARGN} ntdll)
|
||||
|
||||
add_cd_file(TARGET ${apiset_name} DESTINATION reactos/winsxs/${WINARCH}_reactos.apisets_6595b64144ccf1df_1.0.0.0_none_deadbeef FOR all)
|
||||
endfunction()
|
||||
|
||||
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/${WINARCH}_reactos.apisets_6595b64144ccf1df_1.0.0.0_none_deadbeef.manifest DESTINATION reactos/winsxs/manifests FOR all)
|
||||
|
||||
# Apisets will be appended
|
||||
|
||||
add_apiset(api-ms-win-appmodel-identity-l1-1-0 0x60000000 )
|
||||
add_apiset(api-ms-win-appmodel-runtime-l1-1-1 0x60020000 kernel32)
|
||||
add_apiset(api-ms-win-appmodel-runtime-l1-1-2 0x60040000 )
|
||||
add_apiset(api-ms-win-core-apiquery-l1-1-0 0x60060000 )
|
||||
add_apiset(api-ms-win-core-appcompat-l1-1-1 0x60070000 kernel32)
|
||||
add_apiset(api-ms-win-core-appinit-l1-1-0 0x60080000 )
|
||||
add_apiset(api-ms-win-core-atoms-l1-1-0 0x60090000 kernel32)
|
||||
add_apiset(api-ms-win-core-bem-l1-1-0 0x600a0000 )
|
||||
add_apiset(api-ms-win-core-com-l1-1-0 0x600b0000 ole32)
|
||||
add_apiset(api-ms-win-core-com-l1-1-1 0x600c0000 ole32)
|
||||
add_apiset(api-ms-win-core-com-private-l1-1-0 0x600e0000 ole32)
|
||||
add_apiset(api-ms-win-core-comm-l1-1-0 0x60130000 kernel32)
|
||||
add_apiset(api-ms-win-core-console-l1-1-0 0x60140000 kernel32)
|
||||
add_apiset(api-ms-win-core-console-l2-1-0 0x60150000 kernel32)
|
||||
add_apiset(api-ms-win-core-crt-l1-1-0 0x60160000 msvcrt)
|
||||
add_apiset(api-ms-win-core-crt-l2-1-0 0x60190000 msvcrt)
|
||||
add_apiset(api-ms-win-core-datetime-l1-1-0 0x601a0000 kernel32)
|
||||
add_apiset(api-ms-win-core-datetime-l1-1-1 0x601b0000 kernel32)
|
||||
add_apiset(api-ms-win-core-debug-l1-1-0 0x601c0000 kernel32)
|
||||
add_apiset(api-ms-win-core-debug-l1-1-1 0x601d0000 kernel32)
|
||||
add_apiset(api-ms-win-core-delayload-l1-1-0 0x601e0000 kernel32)
|
||||
add_apiset(api-ms-win-core-delayload-l1-1-1 0x601f0000 kernel32)
|
||||
add_apiset(api-ms-win-core-errorhandling-l1-1-0 0x60200000 kernel32)
|
||||
add_apiset(api-ms-win-core-errorhandling-l1-1-1 0x60210000 kernel32)
|
||||
add_apiset(api-ms-win-core-errorhandling-l1-1-2 0x60220000 kernel32)
|
||||
add_apiset(api-ms-win-core-errorhandling-l1-1-3 0x60230000 kernel32)
|
||||
add_apiset(api-ms-win-core-fibers-l1-1-0 0x60240000 kernel32)
|
||||
add_apiset(api-ms-win-core-fibers-l1-1-1 0x60250000 kernel32)
|
||||
add_apiset(api-ms-win-core-file-l1-1-0 0x60260000 kernel32)
|
||||
add_apiset(api-ms-win-core-file-l1-2-0 0x60270000 kernel32)
|
||||
add_apiset(api-ms-win-core-file-l1-2-1 0x60280000 kernel32)
|
||||
add_apiset(api-ms-win-core-file-l1-2-2 0x60290000 kernel32)
|
||||
add_apiset(api-ms-win-core-file-l2-1-0 0x602a0000 kernel32)
|
||||
add_apiset(api-ms-win-core-file-l2-1-1 0x602b0000 kernel32)
|
||||
add_apiset(api-ms-win-core-file-l2-1-2 0x602c0000 kernel32)
|
||||
add_apiset(api-ms-win-core-handle-l1-1-0 0x602d0000 kernel32)
|
||||
add_apiset(api-ms-win-core-heap-l1-1-0 0x602e0000 kernel32)
|
||||
add_apiset(api-ms-win-core-heap-l1-2-0 0x602f0000 kernel32)
|
||||
add_apiset(api-ms-win-core-heap-l2-1-0 0x60300000 kernel32)
|
||||
add_apiset(api-ms-win-core-heap-obsolete-l1-1-0 0x60310000 kernel32)
|
||||
add_apiset(api-ms-win-core-interlocked-l1-1-0 0x60320000 kernel32)
|
||||
add_apiset(api-ms-win-core-interlocked-l1-2-0 0x60330000 kernel32)
|
||||
add_apiset(api-ms-win-core-io-l1-1-0 0x60340000 kernel32)
|
||||
add_apiset(api-ms-win-core-io-l1-1-1 0x60350000 kernel32)
|
||||
add_apiset(api-ms-win-core-job-l1-1-0 0x60360000 kernel32)
|
||||
add_apiset(api-ms-win-core-job-l2-1-0 0x60370000 kernel32)
|
||||
add_apiset(api-ms-win-core-kernel32-legacy-l1-1-0 0x60380000 kernel32)
|
||||
add_apiset(api-ms-win-core-kernel32-legacy-l1-1-1 0x60390000 kernel32)
|
||||
add_apiset(api-ms-win-core-kernel32-private-l1-1-1 0x603a0000 kernel32)
|
||||
add_apiset(api-ms-win-core-largeinteger-l1-1-0 0x603b0000 kernel32)
|
||||
add_apiset(api-ms-win-core-libraryloader-l1-1-0 0x603c0000 kernel32 user32)
|
||||
add_apiset(api-ms-win-core-libraryloader-l1-1-1 0x603d0000 kernel32 user32)
|
||||
add_apiset(api-ms-win-core-libraryloader-l1-2-0 0x603e0000 kernel32 user32)
|
||||
add_apiset(api-ms-win-core-libraryloader-l1-2-1 0x603f0000 kernel32)
|
||||
add_apiset(api-ms-win-core-libraryloader-l1-2-2 0x60400000 kernel32)
|
||||
add_apiset(api-ms-win-core-localization-l1-1-0 0x60410000 kernel32)
|
||||
add_apiset(api-ms-win-core-localization-l1-2-0 0x60420000 kernel32)
|
||||
add_apiset(api-ms-win-core-localization-l1-2-1 0x60430000 kernel32)
|
||||
add_apiset(api-ms-win-core-localization-l2-1-0 0x60440000 kernel32)
|
||||
add_apiset(api-ms-win-core-localization-obsolete-l1-1-0 0x60450000 kernel32)
|
||||
add_apiset(api-ms-win-core-localization-obsolete-l1-2-0 0x60460000 kernel32)
|
||||
add_apiset(api-ms-win-core-localization-obsolete-l1-3-0 0x60470000 kernel32)
|
||||
add_apiset(api-ms-win-core-localization-private-l1-1-0 0x60480000 kernel32)
|
||||
add_apiset(api-ms-win-core-localregistry-l1-1-0 0x60490000 advapi32 advapi32_vista)
|
||||
add_apiset(api-ms-win-core-memory-l1-1-0 0x604a0000 kernel32)
|
||||
add_apiset(api-ms-win-core-memory-l1-1-1 0x604b0000 kernel32)
|
||||
add_apiset(api-ms-win-core-memory-l1-1-2 0x604c0000 kernel32)
|
||||
add_apiset(api-ms-win-core-misc-l1-1-0 0x604d0000 kernel32)
|
||||
add_apiset(api-ms-win-core-namedpipe-l1-1-0 0x604e0000 kernel32 advapi32)
|
||||
add_apiset(api-ms-win-core-namedpipe-l1-2-0 0x604f0000 kernel32 advapi32)
|
||||
add_apiset(api-ms-win-core-namespace-l1-1-0 0x60500000 kernel32)
|
||||
add_apiset(api-ms-win-core-normalization-l1-1-0 0x60510000 kernel32)
|
||||
add_apiset(api-ms-win-core-path-l1-1-0 0x60520000 )
|
||||
add_apiset(api-ms-win-core-privateprofile-l1-1-1 0x60540000 kernel32)
|
||||
add_apiset(api-ms-win-core-processenvironment-l1-1-0 0x60550000 kernel32)
|
||||
add_apiset(api-ms-win-core-processenvironment-l1-2-0 0x60560000 kernel32)
|
||||
add_apiset(api-ms-win-core-processthreads-l1-1-0 0x60570000 kernel32 advapi32)
|
||||
add_apiset(api-ms-win-core-processthreads-l1-1-1 0x60580000 kernel32 advapi32)
|
||||
add_apiset(api-ms-win-core-processthreads-l1-1-2 0x60590000 kernel32 advapi32)
|
||||
add_apiset(api-ms-win-core-processthreads-l1-1-3 0x605a0000 kernel32)
|
||||
add_apiset(api-ms-win-core-processtopology-obsolete-l1-1-0 0x605b0000 kernel32)
|
||||
add_apiset(api-ms-win-core-profile-l1-1-0 0x605c0000 kernel32)
|
||||
add_apiset(api-ms-win-core-psapi-ansi-l1-1-0 0x605d0000 kernel32)
|
||||
add_apiset(api-ms-win-core-psapi-l1-1-0 0x605e0000 kernel32)
|
||||
add_apiset(api-ms-win-core-psapi-obsolete-l1-1-0 0x605f0000 )
|
||||
add_apiset(api-ms-win-core-quirks-l1-1-0 0x60600000 )
|
||||
add_apiset(api-ms-win-core-realtime-l1-1-0 0x60610000 kernel32)
|
||||
add_apiset(api-ms-win-core-registry-l1-1-0 0x60620000 advapi32 advapi32_vista)
|
||||
add_apiset(api-ms-win-core-registry-l2-1-0 0x60630000 advapi32 advapi32_vista)
|
||||
add_apiset(api-ms-win-core-registryuserspecific-l1-1-0 0x60640000 shlwapi)
|
||||
add_apiset(api-ms-win-core-rtlsupport-l1-1-0 0x60650000 kernel32)
|
||||
add_apiset(api-ms-win-core-rtlsupport-l1-2-0 0x60660000 )
|
||||
add_apiset(api-ms-win-core-shlwapi-legacy-l1-1-0 0x60670000 shlwapi)
|
||||
add_apiset(api-ms-win-core-shlwapi-obsolete-l1-1-0 0x60680000 shlwapi)
|
||||
add_apiset(api-ms-win-core-shlwapi-obsolete-l1-2-0 0x60690000 shlwapi)
|
||||
add_apiset(api-ms-win-core-shutdown-l1-1-0 0x606a0000 advapi32)
|
||||
add_apiset(api-ms-win-core-sidebyside-l1-1-0 0x606b0000 kernel32)
|
||||
add_apiset(api-ms-win-core-string-l1-1-0 0x606c0000 kernel32)
|
||||
add_apiset(api-ms-win-core-string-l2-1-0 0x606d0000 user32)
|
||||
add_apiset(api-ms-win-core-string-obsolete-l1-1-0 0x606e0000 kernel32)
|
||||
add_apiset(api-ms-win-core-stringansi-l1-1-0 0x606f0000 user32)
|
||||
add_apiset(api-ms-win-core-stringloader-l1-1-1 0x60700000 user32)
|
||||
add_apiset(api-ms-win-core-synch-ansi-l1-1-0 0x60710000 kernel32)
|
||||
add_apiset(api-ms-win-core-synch-l1-1-0 0x60720000 kernel32)
|
||||
add_apiset(api-ms-win-core-synch-l1-2-0 0x60730000 kernel32)
|
||||
add_apiset(api-ms-win-core-synch-l1-2-1 0x60740000 kernel32)
|
||||
add_apiset(api-ms-win-core-sysinfo-l1-1-0 0x60750000 kernel32)
|
||||
add_apiset(api-ms-win-core-sysinfo-l1-2-0 0x60760000 kernel32)
|
||||
add_apiset(api-ms-win-core-sysinfo-l1-2-1 0x60770000 kernel32)
|
||||
add_apiset(api-ms-win-core-threadpool-l1-1-0 0x60780000 kernel32)
|
||||
add_apiset(api-ms-win-core-threadpool-l1-2-0 0x60790000 kernel32)
|
||||
add_apiset(api-ms-win-core-threadpool-legacy-l1-1-0 0x607a0000 kernel32)
|
||||
add_apiset(api-ms-win-core-threadpool-private-l1-1-0 0x607b0000 kernel32)
|
||||
add_apiset(api-ms-win-core-timezone-l1-1-0 0x607c0000 kernel32)
|
||||
add_apiset(api-ms-win-core-toolhelp-l1-1-0 0x607d0000 kernel32)
|
||||
add_apiset(api-ms-win-core-url-l1-1-0 0x607e0000 shlwapi)
|
||||
add_apiset(api-ms-win-core-util-l1-1-0 0x607f0000 kernel32)
|
||||
add_apiset(api-ms-win-core-version-l1-1-0 0x60800000 version)
|
||||
add_apiset(api-ms-win-core-version-l1-1-1 0x60810000 version)
|
||||
add_apiset(api-ms-win-core-version-private-l1-1-0 0x60820000 )
|
||||
add_apiset(api-ms-win-core-versionansi-l1-1-0 0x60830000 version)
|
||||
add_apiset(api-ms-win-core-windowserrorreporting-l1-1-0 0x60840000 kernel32)
|
||||
add_apiset(api-ms-win-core-winrt-error-l1-1-0 0x60850000 )
|
||||
add_apiset(api-ms-win-core-winrt-error-l1-1-1 0x60860000 )
|
||||
add_apiset(api-ms-win-core-winrt-errorprivate-l1-1-1 0x60880000 )
|
||||
add_apiset(api-ms-win-core-winrt-l1-1-0 0x60890000 )
|
||||
add_apiset(api-ms-win-core-winrt-registration-l1-1-0 0x608a0000 )
|
||||
add_apiset(api-ms-win-core-winrt-roparameterizediid-l1-1-0 0x608b0000 )
|
||||
add_apiset(api-ms-win-core-winrt-string-l1-1-0 0x608c0000 )
|
||||
add_apiset(api-ms-win-core-winrt-string-l1-1-1 0x608e0000 )
|
||||
add_apiset(api-ms-win-core-wow64-l1-1-0 0x60900000 kernel32)
|
||||
add_apiset(api-ms-win-core-wow64-l1-1-1 0x60910000 kernel32)
|
||||
add_apiset(api-ms-win-core-xstate-l1-1-0 0x60920000 )
|
||||
add_apiset(api-ms-win-core-xstate-l2-1-0 0x60930000 )
|
||||
add_apiset(api-ms-win-crt-conio-l1-1-0 0x60940000 msvcrt)
|
||||
add_apiset(api-ms-win-crt-convert-l1-1-0 0x60960000 msvcrt)
|
||||
add_apiset(api-ms-win-crt-environment-l1-1-0 0x609c0000 msvcrt)
|
||||
add_apiset(api-ms-win-crt-filesystem-l1-1-0 0x609d0000 msvcrt)
|
||||
add_apiset(api-ms-win-crt-heap-l1-1-0 0x60a00000 msvcrt)
|
||||
add_apiset(api-ms-win-crt-locale-l1-1-0 0x60a10000 msvcrt)
|
||||
add_apiset(api-ms-win-crt-math-l1-1-0 0x60a20000 msvcrt)
|
||||
add_apiset(api-ms-win-crt-multibyte-l1-1-0 0x60b30000 msvcrt)
|
||||
add_apiset(api-ms-win-crt-private-l1-1-0 0x60bb0000 msvcrt kernel32)
|
||||
add_apiset(api-ms-win-crt-process-l1-1-0 0x61020000 msvcrt)
|
||||
add_apiset(api-ms-win-crt-runtime-l1-1-0 0x61030000 msvcrt)
|
||||
add_apiset(api-ms-win-crt-stdio-l1-1-0 0x61070000 msvcrt)
|
||||
add_apiset(api-ms-win-crt-string-l1-1-0 0x610c0000 msvcrt)
|
||||
add_apiset(api-ms-win-crt-time-l1-1-0 0x61120000 msvcrt)
|
||||
add_apiset(api-ms-win-crt-utility-l1-1-0 0x61150000 msvcrt)
|
||||
add_apiset(api-ms-win-devices-config-l1-1-0 0x61160000 setupapi)
|
||||
add_apiset(api-ms-win-devices-config-l1-1-1 0x61170000 setupapi)
|
||||
add_apiset(api-ms-win-devices-query-l1-1-1 0x61180000 )
|
||||
add_apiset(api-ms-win-downlevel-advapi32-l1-1-0 0x61190000 advapi32 advapi32_vista)
|
||||
add_apiset(api-ms-win-downlevel-advapi32-l2-1-0 0x611b0000 advapi32)
|
||||
add_apiset(api-ms-win-downlevel-normaliz-l1-1-0 0x611c0000 kernel32)
|
||||
add_apiset(api-ms-win-downlevel-ole32-l1-1-0 0x611d0000 ole32)
|
||||
add_apiset(api-ms-win-downlevel-shell32-l1-1-0 0x611e0000 shell32)
|
||||
add_apiset(api-ms-win-downlevel-shlwapi-l1-1-0 0x611f0000 shlwapi)
|
||||
add_apiset(api-ms-win-downlevel-shlwapi-l2-1-0 0x61200000 shlwapi)
|
||||
add_apiset(api-ms-win-downlevel-user32-l1-1-0 0x61210000 user32)
|
||||
add_apiset(api-ms-win-downlevel-version-l1-1-0 0x61220000 version)
|
||||
add_apiset(api-ms-win-dx-d3dkmt-l1-1-0 0x61230000 gdi32_vista gdi32)
|
||||
add_apiset(api-ms-win-eventing-classicprovider-l1-1-0 0x61290000 advapi32)
|
||||
add_apiset(api-ms-win-eventing-consumer-l1-1-0 0x612a0000 advapi32)
|
||||
add_apiset(api-ms-win-eventing-controller-l1-1-0 0x612b0000 advapi32)
|
||||
add_apiset(api-ms-win-eventing-legacy-l1-1-0 0x612c0000 advapi32)
|
||||
add_apiset(api-ms-win-eventing-provider-l1-1-0 0x612d0000 )
|
||||
add_apiset(api-ms-win-eventlog-legacy-l1-1-0 0x612e0000 advapi32)
|
||||
add_apiset(api-ms-win-gdi-dpiinfo-l1-1-0 0x612f0000 )
|
||||
add_apiset(api-ms-win-mm-joystick-l1-1-0 0x61300000 winmm)
|
||||
add_apiset(api-ms-win-mm-misc-l1-1-1 0x61310000 winmm)
|
||||
add_apiset(api-ms-win-mm-mme-l1-1-0 0x61320000 winmm)
|
||||
add_apiset(api-ms-win-mm-time-l1-1-0 0x61330000 winmm)
|
||||
add_apiset(api-ms-win-ntuser-dc-access-l1-1-0 0x61340000 user32)
|
||||
add_apiset(api-ms-win-ntuser-rectangle-l1-1-0 0x61350000 user32)
|
||||
add_apiset(api-ms-win-ntuser-sysparams-l1-1-0 0x61360000 user32)
|
||||
add_apiset(api-ms-win-perf-legacy-l1-1-0 0x61370000 )
|
||||
add_apiset(api-ms-win-power-base-l1-1-0 0x61380000 powrprof)
|
||||
add_apiset(api-ms-win-power-setting-l1-1-0 0x61390000 powrprof)
|
||||
add_apiset(api-ms-win-rtcore-ntuser-draw-l1-1-0 0x613a0000 user32)
|
||||
add_apiset(api-ms-win-rtcore-ntuser-private-l1-1-0 0x613b0000 user32)
|
||||
add_apiset(api-ms-win-rtcore-ntuser-private-l1-1-4 0x613c0000 )
|
||||
add_apiset(api-ms-win-rtcore-ntuser-window-l1-1-0 0x613d0000 user32)
|
||||
add_apiset(api-ms-win-rtcore-ntuser-winevent-l1-1-0 0x613e0000 user32)
|
||||
add_apiset(api-ms-win-rtcore-ntuser-wmpointer-l1-1-0 0x613f0000 )
|
||||
add_apiset(api-ms-win-rtcore-ntuser-wmpointer-l1-1-3 0x61410000 )
|
||||
add_apiset(api-ms-win-security-activedirectoryclient-l1-1-0 0x61420000 ntdsapi)
|
||||
add_apiset(api-ms-win-security-audit-l1-1-1 0x61430000 )
|
||||
add_apiset(api-ms-win-security-base-l1-1-0 0x61440000 advapi32)
|
||||
add_apiset(api-ms-win-security-base-l1-2-0 0x61450000 advapi32)
|
||||
add_apiset(api-ms-win-security-base-private-l1-1-1 0x61460000 advapi32)
|
||||
add_apiset(api-ms-win-security-credentials-l1-1-0 0x61470000 advapi32)
|
||||
add_apiset(api-ms-win-security-cryptoapi-l1-1-0 0x61480000 advapi32)
|
||||
add_apiset(api-ms-win-security-grouppolicy-l1-1-0 0x61490000 userenv)
|
||||
add_apiset(api-ms-win-security-lsalookup-l1-1-0 0x614b0000 )
|
||||
add_apiset(api-ms-win-security-lsalookup-l1-1-1 0x614c0000 )
|
||||
add_apiset(api-ms-win-security-lsalookup-l2-1-0 0x614d0000 advapi32)
|
||||
add_apiset(api-ms-win-security-lsalookup-l2-1-1 0x614e0000 advapi32)
|
||||
add_apiset(api-ms-win-security-lsapolicy-l1-1-0 0x614f0000 advapi32)
|
||||
add_apiset(api-ms-win-security-provider-l1-1-0 0x61500000 advapi32)
|
||||
add_apiset(api-ms-win-security-sddl-l1-1-0 0x61510000 advapi32)
|
||||
add_apiset(api-ms-win-security-systemfunctions-l1-1-0 0x61520000 advapi32)
|
||||
add_apiset(api-ms-win-service-core-l1-1-0 0x61530000 advapi32)
|
||||
add_apiset(api-ms-win-service-core-l1-1-1 0x61540000 advapi32)
|
||||
add_apiset(api-ms-win-service-management-l1-1-0 0x61550000 advapi32)
|
||||
add_apiset(api-ms-win-service-management-l2-1-0 0x61560000 advapi32)
|
||||
add_apiset(api-ms-win-service-private-l1-1-1 0x61570000 advapi32)
|
||||
add_apiset(api-ms-win-service-winsvc-l1-1-0 0x61580000 advapi32)
|
||||
add_apiset(api-ms-win-service-winsvc-l1-2-0 0x61590000 advapi32)
|
||||
add_apiset(api-ms-win-shcore-obsolete-l1-1-0 0x615a0000 shlwapi shell32)
|
||||
add_apiset(api-ms-win-shcore-scaling-l1-1-1 0x615b0000 )
|
||||
add_apiset(api-ms-win-shcore-stream-l1-1-0 0x615c0000 shlwapi)
|
||||
add_apiset(api-ms-win-shcore-thread-l1-1-0 0x615d0000 shlwapi)
|
||||
add_apiset(api-ms-win-shell-shellcom-l1-1-0 0x615e0000 shell32)
|
||||
add_apiset(api-ms-win-shell-shellfolders-l1-1-0 0x615f0000 shell32)
|
41
dll/apisets/CMakeLists.txt.in
Normal file
41
dll/apisets/CMakeLists.txt.in
Normal file
@@ -0,0 +1,41 @@
|
||||
|
||||
# This file is generated by update.py, please edit CMakeLists.txt.in instead
|
||||
# Generated from %WINE_GIT_VERSION%
|
||||
|
||||
project(apisets)
|
||||
|
||||
function (add_apiset apiset_name baseaddress)
|
||||
spec2def(${apiset_name}.dll ${apiset_name}.spec ADD_IMPORTLIB)
|
||||
|
||||
add_definitions(
|
||||
-D_CTYPE_DISABLE_MACROS
|
||||
-D_NO_INLINING
|
||||
-D__CRT__NO_INLINE
|
||||
-D__STDC_WANT_SECURE_LIB__=0
|
||||
-D_INC_STRING
|
||||
-D_CTYPE_DEFINED
|
||||
-D_WCTYPE_DEFINED
|
||||
-D_CRT_ERRNO_DEFINED)
|
||||
|
||||
add_library(${apiset_name} MODULE
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${apiset_name}_stubs.c
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${apiset_name}.def)
|
||||
|
||||
add_dependencies(${apiset_name} xdk)
|
||||
set_module_type(${apiset_name} module UNICODE IMAGEBASE ${baseaddress})
|
||||
|
||||
if(NOT MSVC)
|
||||
target_compile_options(${apiset_name} PRIVATE -fno-builtin)
|
||||
else()
|
||||
target_compile_options(${apiset_name} PRIVATE /wd4026 /wd4273 /Oi-)
|
||||
endif()
|
||||
|
||||
add_importlibs(${apiset_name} ${ARGN} ntdll)
|
||||
|
||||
add_cd_file(TARGET ${apiset_name} DESTINATION reactos/winsxs/${WINARCH}_reactos.apisets_6595b64144ccf1df_1.0.0.0_none_deadbeef FOR all)
|
||||
endfunction()
|
||||
|
||||
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/${WINARCH}_reactos.apisets_6595b64144ccf1df_1.0.0.0_none_deadbeef.manifest DESTINATION reactos/winsxs/manifests FOR all)
|
||||
|
||||
# Apisets will be appended
|
||||
|
@@ -0,0 +1,220 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||
<!-- Generated from wine-3.20-144-g2ef62f9085 -->
|
||||
<assemblyIdentity type="win32" name="ReactOS.Apisets" version="1.0.0.0" publicKeyToken="6595b64144ccf1df"/>
|
||||
<file name="api-ms-win-appmodel-identity-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-appmodel-runtime-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-appmodel-runtime-l1-1-2.dll"/>
|
||||
<file name="api-ms-win-core-apiquery-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-appcompat-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-core-appinit-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-atoms-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-bem-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-com-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-com-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-core-com-private-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-comm-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-console-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-console-l2-1-0.dll"/>
|
||||
<file name="api-ms-win-core-crt-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-crt-l2-1-0.dll"/>
|
||||
<file name="api-ms-win-core-datetime-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-datetime-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-core-debug-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-debug-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-core-delayload-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-delayload-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-core-errorhandling-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-errorhandling-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-core-errorhandling-l1-1-2.dll"/>
|
||||
<file name="api-ms-win-core-errorhandling-l1-1-3.dll"/>
|
||||
<file name="api-ms-win-core-fibers-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-fibers-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-core-file-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-file-l1-2-0.dll"/>
|
||||
<file name="api-ms-win-core-file-l1-2-1.dll"/>
|
||||
<file name="api-ms-win-core-file-l1-2-2.dll"/>
|
||||
<file name="api-ms-win-core-file-l2-1-0.dll"/>
|
||||
<file name="api-ms-win-core-file-l2-1-1.dll"/>
|
||||
<file name="api-ms-win-core-file-l2-1-2.dll"/>
|
||||
<file name="api-ms-win-core-handle-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-heap-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-heap-l1-2-0.dll"/>
|
||||
<file name="api-ms-win-core-heap-l2-1-0.dll"/>
|
||||
<file name="api-ms-win-core-heap-obsolete-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-interlocked-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-interlocked-l1-2-0.dll"/>
|
||||
<file name="api-ms-win-core-io-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-io-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-core-job-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-job-l2-1-0.dll"/>
|
||||
<file name="api-ms-win-core-kernel32-legacy-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-kernel32-legacy-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-core-kernel32-private-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-core-largeinteger-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-libraryloader-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-libraryloader-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-core-libraryloader-l1-2-0.dll"/>
|
||||
<file name="api-ms-win-core-libraryloader-l1-2-1.dll"/>
|
||||
<file name="api-ms-win-core-libraryloader-l1-2-2.dll"/>
|
||||
<file name="api-ms-win-core-localization-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-localization-l1-2-0.dll"/>
|
||||
<file name="api-ms-win-core-localization-l1-2-1.dll"/>
|
||||
<file name="api-ms-win-core-localization-l2-1-0.dll"/>
|
||||
<file name="api-ms-win-core-localization-obsolete-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-localization-obsolete-l1-2-0.dll"/>
|
||||
<file name="api-ms-win-core-localization-obsolete-l1-3-0.dll"/>
|
||||
<file name="api-ms-win-core-localization-private-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-localregistry-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-memory-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-memory-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-core-memory-l1-1-2.dll"/>
|
||||
<file name="api-ms-win-core-misc-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-namedpipe-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-namedpipe-l1-2-0.dll"/>
|
||||
<file name="api-ms-win-core-namespace-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-normalization-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-path-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-privateprofile-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-core-processenvironment-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-processenvironment-l1-2-0.dll"/>
|
||||
<file name="api-ms-win-core-processthreads-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-processthreads-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-core-processthreads-l1-1-2.dll"/>
|
||||
<file name="api-ms-win-core-processthreads-l1-1-3.dll"/>
|
||||
<file name="api-ms-win-core-processtopology-obsolete-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-profile-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-psapi-ansi-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-psapi-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-psapi-obsolete-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-quirks-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-realtime-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-registry-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-registry-l2-1-0.dll"/>
|
||||
<file name="api-ms-win-core-registryuserspecific-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-rtlsupport-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-rtlsupport-l1-2-0.dll"/>
|
||||
<file name="api-ms-win-core-shlwapi-legacy-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-shlwapi-obsolete-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-shlwapi-obsolete-l1-2-0.dll"/>
|
||||
<file name="api-ms-win-core-shutdown-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-sidebyside-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-string-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-string-l2-1-0.dll"/>
|
||||
<file name="api-ms-win-core-string-obsolete-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-stringansi-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-stringloader-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-core-synch-ansi-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-synch-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-synch-l1-2-0.dll"/>
|
||||
<file name="api-ms-win-core-synch-l1-2-1.dll"/>
|
||||
<file name="api-ms-win-core-sysinfo-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-sysinfo-l1-2-0.dll"/>
|
||||
<file name="api-ms-win-core-sysinfo-l1-2-1.dll"/>
|
||||
<file name="api-ms-win-core-threadpool-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-threadpool-l1-2-0.dll"/>
|
||||
<file name="api-ms-win-core-threadpool-legacy-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-threadpool-private-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-timezone-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-toolhelp-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-url-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-util-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-version-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-version-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-core-version-private-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-versionansi-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-windowserrorreporting-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-winrt-error-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-winrt-error-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-core-winrt-errorprivate-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-core-winrt-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-winrt-registration-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-winrt-string-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-winrt-string-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-core-wow64-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-wow64-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-core-xstate-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-core-xstate-l2-1-0.dll"/>
|
||||
<file name="api-ms-win-crt-conio-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-crt-convert-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-crt-environment-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-crt-filesystem-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-crt-heap-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-crt-locale-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-crt-math-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-crt-multibyte-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-crt-private-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-crt-process-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-crt-runtime-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-crt-stdio-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-crt-string-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-crt-time-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-crt-utility-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-devices-config-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-devices-config-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-devices-query-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-downlevel-advapi32-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-downlevel-advapi32-l2-1-0.dll"/>
|
||||
<file name="api-ms-win-downlevel-normaliz-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-downlevel-ole32-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-downlevel-shell32-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-downlevel-shlwapi-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-downlevel-shlwapi-l2-1-0.dll"/>
|
||||
<file name="api-ms-win-downlevel-user32-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-downlevel-version-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-dx-d3dkmt-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-eventing-classicprovider-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-eventing-consumer-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-eventing-controller-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-eventing-legacy-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-eventing-provider-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-eventlog-legacy-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-gdi-dpiinfo-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-mm-joystick-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-mm-misc-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-mm-mme-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-mm-time-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-ntuser-dc-access-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-ntuser-rectangle-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-ntuser-sysparams-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-perf-legacy-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-power-base-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-power-setting-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-rtcore-ntuser-draw-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-rtcore-ntuser-private-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-rtcore-ntuser-private-l1-1-4.dll"/>
|
||||
<file name="api-ms-win-rtcore-ntuser-window-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-rtcore-ntuser-winevent-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-rtcore-ntuser-wmpointer-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-rtcore-ntuser-wmpointer-l1-1-3.dll"/>
|
||||
<file name="api-ms-win-security-activedirectoryclient-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-security-audit-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-security-base-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-security-base-l1-2-0.dll"/>
|
||||
<file name="api-ms-win-security-base-private-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-security-credentials-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-security-cryptoapi-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-security-grouppolicy-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-security-lsalookup-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-security-lsalookup-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-security-lsalookup-l2-1-0.dll"/>
|
||||
<file name="api-ms-win-security-lsalookup-l2-1-1.dll"/>
|
||||
<file name="api-ms-win-security-lsapolicy-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-security-provider-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-security-sddl-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-security-systemfunctions-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-service-core-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-service-core-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-service-management-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-service-management-l2-1-0.dll"/>
|
||||
<file name="api-ms-win-service-private-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-service-winsvc-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-service-winsvc-l1-2-0.dll"/>
|
||||
<file name="api-ms-win-shcore-obsolete-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-shcore-scaling-l1-1-1.dll"/>
|
||||
<file name="api-ms-win-shcore-stream-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-shcore-thread-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-shell-shellcom-l1-1-0.dll"/>
|
||||
<file name="api-ms-win-shell-shellfolders-l1-1-0.dll"/>
|
||||
</assembly>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||
<!-- Generated from %WINE_GIT_VERSION% -->
|
||||
<assemblyIdentity type="win32" name="ReactOS.Apisets" version="1.0.0.0" publicKeyToken="6595b64144ccf1df"/>
|
||||
%MANIFEST_FILE_LIST%
|
||||
</assembly>
|
20
dll/apisets/api-ms-win-appmodel-identity-l1-1-0.spec
Normal file
20
dll/apisets/api-ms-win-appmodel-identity-l1-1-0.spec
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
# This file is autogenerated by update.py
|
||||
|
||||
@ stub AppContainerDeriveSidFromMoniker
|
||||
@ stub AppContainerFreeMemory
|
||||
@ stub AppContainerLookupDisplayNameMrtReference
|
||||
@ stub AppContainerLookupMoniker
|
||||
@ stub AppContainerRegisterSid
|
||||
@ stub AppContainerUnregisterSid
|
||||
@ stub AppXFreeMemory
|
||||
@ stub AppXGetApplicationData
|
||||
@ stub AppXGetDevelopmentMode
|
||||
@ stub AppXGetOSMaxVersionTested
|
||||
@ stub AppXGetOSMinVersion
|
||||
@ stub AppXGetPackageCapabilities
|
||||
@ stub AppXGetPackageSid
|
||||
@ stub AppXGetPackageState
|
||||
@ stub AppXLookupDisplayName
|
||||
@ stub AppXLookupMoniker
|
||||
@ stub AppXSetPackageState
|
30
dll/apisets/api-ms-win-appmodel-runtime-l1-1-1.spec
Normal file
30
dll/apisets/api-ms-win-appmodel-runtime-l1-1-1.spec
Normal file
@@ -0,0 +1,30 @@
|
||||
|
||||
# This file is autogenerated by update.py
|
||||
|
||||
@ stub ClosePackageInfo
|
||||
@ stub FindPackagesByPackageFamily
|
||||
@ stub FormatApplicationUserModelId
|
||||
@ stub GetApplicationUserModelId
|
||||
@ stub GetCurrentApplicationUserModelId
|
||||
@ stub GetCurrentPackageFamilyName
|
||||
@ stub GetCurrentPackageFullName
|
||||
@ stdcall -version=0x602+ GetCurrentPackageId() kernel32.GetCurrentPackageId
|
||||
@ stub GetCurrentPackageInfo
|
||||
@ stub GetCurrentPackagePath
|
||||
@ stub GetPackageApplicationIds
|
||||
@ stub GetPackageFamilyName
|
||||
@ stub GetPackageFullName
|
||||
@ stub GetPackageId
|
||||
@ stub GetPackageInfo
|
||||
@ stub GetPackagePath
|
||||
@ stub GetPackagePathByFullName
|
||||
@ stub GetPackagesByPackageFamily
|
||||
@ stub GetStagedPackageOrigin
|
||||
@ stub GetStagedPackagePathByFullName
|
||||
@ stub OpenPackageInfoByFullName
|
||||
@ stub PackageFamilyNameFromFullName
|
||||
@ stub PackageFamilyNameFromId
|
||||
@ stub PackageFullNameFromId
|
||||
@ stub PackageIdFromFullName
|
||||
@ stub PackageNameAndPublisherIdFromFamilyName
|
||||
@ stub ParseApplicationUserModelId
|
20
dll/apisets/api-ms-win-appmodel-runtime-l1-1-2.spec
Normal file
20
dll/apisets/api-ms-win-appmodel-runtime-l1-1-2.spec
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
# This file is autogenerated by update.py
|
||||
|
||||
@ stub AppPolicyGetClrCompat
|
||||
@ stub AppPolicyGetCreateFileAccess
|
||||
@ stub AppPolicyGetLifecycleManagement
|
||||
@ stub AppPolicyGetMediaFoundationCodecLoading
|
||||
@ stdcall -stub AppPolicyGetProcessTerminationMethod(long ptr)
|
||||
@ stub AppPolicyGetShowDeveloperDiagnostic
|
||||
@ stdcall -stub AppPolicyGetThreadInitializationType(long ptr)
|
||||
@ stub AppPolicyGetWindowingModel
|
||||
@ stub GetApplicationUserModelIdFromToken
|
||||
@ stub GetPackageFamilyNameFromToken
|
||||
@ stub GetPackageFullNameFromToken
|
||||
@ stub OpenPackageInfoByFullNameForUser
|
||||
@ stub VerifyApplicationUserModelId
|
||||
@ stub VerifyPackageFamilyName
|
||||
@ stub VerifyPackageFullName
|
||||
@ stub VerifyPackageId
|
||||
@ stub VerifyPackageRelativeApplicationId
|
4
dll/apisets/api-ms-win-core-apiquery-l1-1-0.spec
Normal file
4
dll/apisets/api-ms-win-core-apiquery-l1-1-0.spec
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
# This file is autogenerated by update.py
|
||||
|
||||
@ stub ApiSetQueryApiSetPresence
|
13
dll/apisets/api-ms-win-core-appcompat-l1-1-1.spec
Normal file
13
dll/apisets/api-ms-win-core-appcompat-l1-1-1.spec
Normal file
@@ -0,0 +1,13 @@
|
||||
|
||||
# This file is autogenerated by update.py
|
||||
|
||||
@ stdcall BaseCheckAppcompatCache() kernel32.BaseCheckAppcompatCache
|
||||
@ stub BaseCheckAppcompatCacheEx
|
||||
@ stdcall BaseCleanupAppcompatCacheSupport() kernel32.BaseCleanupAppcompatCacheSupport
|
||||
@ stdcall BaseDumpAppcompatCache() kernel32.BaseDumpAppcompatCache
|
||||
@ stdcall BaseFlushAppcompatCache() kernel32.BaseFlushAppcompatCache
|
||||
@ stub BaseFreeAppCompatDataForProcess
|
||||
@ stdcall BaseInitAppcompatCacheSupport() kernel32.BaseInitAppcompatCacheSupport
|
||||
@ stdcall BaseIsAppcompatInfrastructureDisabled() kernel32.BaseIsAppcompatInfrastructureDisabled
|
||||
@ stub BaseReadAppCompatDataForProcess
|
||||
@ stdcall BaseUpdateAppcompatCache() kernel32.BaseUpdateAppcompatCache
|
4
dll/apisets/api-ms-win-core-appinit-l1-1-0.spec
Normal file
4
dll/apisets/api-ms-win-core-appinit-l1-1-0.spec
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
# This file is autogenerated by update.py
|
||||
|
||||
@ stub LoadAppInitDlls
|
20
dll/apisets/api-ms-win-core-atoms-l1-1-0.spec
Normal file
20
dll/apisets/api-ms-win-core-atoms-l1-1-0.spec
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
# This file is autogenerated by update.py
|
||||
|
||||
@ stdcall AddAtomA() kernel32.AddAtomA
|
||||
@ stdcall AddAtomW() kernel32.AddAtomW
|
||||
@ stdcall DeleteAtom() kernel32.DeleteAtom
|
||||
@ stdcall FindAtomA() kernel32.FindAtomA
|
||||
@ stdcall FindAtomW() kernel32.FindAtomW
|
||||
@ stdcall GetAtomNameA() kernel32.GetAtomNameA
|
||||
@ stdcall GetAtomNameW() kernel32.GetAtomNameW
|
||||
@ stdcall GlobalAddAtomA() kernel32.GlobalAddAtomA
|
||||
@ stub GlobalAddAtomExA
|
||||
@ stub GlobalAddAtomExW
|
||||
@ stdcall GlobalAddAtomW() kernel32.GlobalAddAtomW
|
||||
@ stdcall GlobalDeleteAtom() kernel32.GlobalDeleteAtom
|
||||
@ stdcall GlobalFindAtomA() kernel32.GlobalFindAtomA
|
||||
@ stdcall GlobalFindAtomW() kernel32.GlobalFindAtomW
|
||||
@ stdcall GlobalGetAtomNameA() kernel32.GlobalGetAtomNameA
|
||||
@ stdcall GlobalGetAtomNameW() kernel32.GlobalGetAtomNameW
|
||||
@ stdcall InitAtomTable() kernel32.InitAtomTable
|
8
dll/apisets/api-ms-win-core-bem-l1-1-0.spec
Normal file
8
dll/apisets/api-ms-win-core-bem-l1-1-0.spec
Normal file
@@ -0,0 +1,8 @@
|
||||
|
||||
# This file is autogenerated by update.py
|
||||
|
||||
@ stub BemCopyReference
|
||||
@ stub BemCreateContractFrom
|
||||
@ stub BemCreateReference
|
||||
@ stub BemFreeContract
|
||||
@ stub BemFreeReference
|
83
dll/apisets/api-ms-win-core-com-l1-1-0.spec
Normal file
83
dll/apisets/api-ms-win-core-com-l1-1-0.spec
Normal file
@@ -0,0 +1,83 @@
|
||||
|
||||
# This file is autogenerated by update.py
|
||||
|
||||
@ stdcall CLSIDFromProgID() ole32.CLSIDFromProgID
|
||||
@ stdcall CLSIDFromString() ole32.CLSIDFromString
|
||||
@ stdcall CoAddRefServerProcess() ole32.CoAddRefServerProcess
|
||||
@ stub CoAllowUnmarshalerCLSID
|
||||
@ stdcall CoCancelCall() ole32.CoCancelCall
|
||||
@ stdcall CoCopyProxy() ole32.CoCopyProxy
|
||||
@ stdcall CoCreateFreeThreadedMarshaler() ole32.CoCreateFreeThreadedMarshaler
|
||||
@ stdcall CoCreateGuid() ole32.CoCreateGuid
|
||||
@ stdcall CoCreateInstance() ole32.CoCreateInstance
|
||||
@ stdcall CoCreateInstanceEx() ole32.CoCreateInstanceEx
|
||||
@ stub CoCreateInstanceFromApp
|
||||
@ stub CoDecodeProxy
|
||||
@ stub CoDecrementMTAUsage
|
||||
@ stdcall CoDisableCallCancellation() ole32.CoDisableCallCancellation
|
||||
@ stdcall -version=0x600+ CoDisconnectContext() ole32.CoDisconnectContext
|
||||
@ stdcall CoDisconnectObject() ole32.CoDisconnectObject
|
||||
@ stdcall CoEnableCallCancellation() ole32.CoEnableCallCancellation
|
||||
@ stdcall CoFreeUnusedLibraries() ole32.CoFreeUnusedLibraries
|
||||
@ stdcall CoFreeUnusedLibrariesEx() ole32.CoFreeUnusedLibrariesEx
|
||||
@ stub CoGetApartmentType
|
||||
@ stdcall CoGetCallContext() ole32.CoGetCallContext
|
||||
@ stdcall CoGetCallerTID() ole32.CoGetCallerTID
|
||||
@ stdcall CoGetCancelObject() ole32.CoGetCancelObject
|
||||
@ stdcall CoGetClassObject() ole32.CoGetClassObject
|
||||
@ stdcall CoGetContextToken() ole32.CoGetContextToken
|
||||
@ stdcall CoGetCurrentLogicalThreadId() ole32.CoGetCurrentLogicalThreadId
|
||||
@ stdcall CoGetCurrentProcess() ole32.CoGetCurrentProcess
|
||||
@ stdcall CoGetDefaultContext() ole32.CoGetDefaultContext
|
||||
@ stdcall CoGetInterfaceAndReleaseStream() ole32.CoGetInterfaceAndReleaseStream
|
||||
@ stdcall CoGetMalloc() ole32.CoGetMalloc
|
||||
@ stdcall CoGetMarshalSizeMax() ole32.CoGetMarshalSizeMax
|
||||
@ stdcall CoGetObjectContext() ole32.CoGetObjectContext
|
||||
@ stdcall CoGetPSClsid() ole32.CoGetPSClsid
|
||||
@ stdcall CoGetStandardMarshal() ole32.CoGetStandardMarshal
|
||||
@ stdcall CoGetStdMarshalEx() ole32.CoGetStdMarshalEx
|
||||
@ stdcall CoGetTreatAsClass() ole32.CoGetTreatAsClass
|
||||
@ stdcall CoImpersonateClient() ole32.CoImpersonateClient
|
||||
@ stub CoIncrementMTAUsage
|
||||
@ stdcall CoInitializeEx() ole32.CoInitializeEx
|
||||
@ stdcall CoInitializeSecurity() ole32.CoInitializeSecurity
|
||||
@ stub CoInvalidateRemoteMachineBindings
|
||||
@ stdcall CoIsHandlerConnected() ole32.CoIsHandlerConnected
|
||||
@ stdcall CoLockObjectExternal() ole32.CoLockObjectExternal
|
||||
@ stdcall CoMarshalHresult() ole32.CoMarshalHresult
|
||||
@ stdcall CoMarshalInterThreadInterfaceInStream() ole32.CoMarshalInterThreadInterfaceInStream
|
||||
@ stdcall CoMarshalInterface() ole32.CoMarshalInterface
|
||||
@ stdcall CoQueryAuthenticationServices() ole32.CoQueryAuthenticationServices
|
||||
@ stdcall CoQueryClientBlanket() ole32.CoQueryClientBlanket
|
||||
@ stdcall CoQueryProxyBlanket() ole32.CoQueryProxyBlanket
|
||||
@ stdcall CoRegisterClassObject() ole32.CoRegisterClassObject
|
||||
@ stdcall CoRegisterPSClsid() ole32.CoRegisterPSClsid
|
||||
@ stdcall CoRegisterSurrogate() ole32.CoRegisterSurrogate
|
||||
@ stdcall CoReleaseMarshalData() ole32.CoReleaseMarshalData
|
||||
@ stdcall CoReleaseServerProcess() ole32.CoReleaseServerProcess
|
||||
@ stdcall CoResumeClassObjects() ole32.CoResumeClassObjects
|
||||
@ stdcall CoRevertToSelf() ole32.CoRevertToSelf
|
||||
@ stdcall CoRevokeClassObject() ole32.CoRevokeClassObject
|
||||
@ stub CoSetCancelObject
|
||||
@ stdcall CoSetProxyBlanket() ole32.CoSetProxyBlanket
|
||||
@ stdcall CoSuspendClassObjects() ole32.CoSuspendClassObjects
|
||||
@ stdcall CoSwitchCallContext() ole32.CoSwitchCallContext
|
||||
@ stdcall CoTaskMemAlloc() ole32.CoTaskMemAlloc
|
||||
@ stdcall CoTaskMemFree() ole32.CoTaskMemFree
|
||||
@ stdcall CoTaskMemRealloc() ole32.CoTaskMemRealloc
|
||||
@ stub CoTestCancel
|
||||
@ stdcall CoUninitialize() ole32.CoUninitialize
|
||||
@ stdcall CoUnmarshalHresult() ole32.CoUnmarshalHresult
|
||||
@ stdcall CoUnmarshalInterface() ole32.CoUnmarshalInterface
|
||||
@ stdcall CoWaitForMultipleHandles() ole32.CoWaitForMultipleHandles
|
||||
@ stub CoWaitForMultipleObjects
|
||||
@ stdcall CreateStreamOnHGlobal() ole32.CreateStreamOnHGlobal
|
||||
@ stdcall FreePropVariantArray() ole32.FreePropVariantArray
|
||||
@ stdcall GetHGlobalFromStream() ole32.GetHGlobalFromStream
|
||||
@ stdcall IIDFromString() ole32.IIDFromString
|
||||
@ stdcall ProgIDFromCLSID() ole32.ProgIDFromCLSID
|
||||
@ stdcall PropVariantClear() ole32.PropVariantClear
|
||||
@ stdcall PropVariantCopy() ole32.PropVariantCopy
|
||||
@ stdcall StringFromCLSID() ole32.StringFromCLSID
|
||||
@ stdcall StringFromGUID2() ole32.StringFromGUID2
|
||||
@ stdcall StringFromIID() ole32.StringFromIID
|
85
dll/apisets/api-ms-win-core-com-l1-1-1.spec
Normal file
85
dll/apisets/api-ms-win-core-com-l1-1-1.spec
Normal file
@@ -0,0 +1,85 @@
|
||||
|
||||
# This file is autogenerated by update.py
|
||||
|
||||
@ stdcall CLSIDFromProgID() ole32.CLSIDFromProgID
|
||||
@ stdcall CLSIDFromString() ole32.CLSIDFromString
|
||||
@ stdcall CoAddRefServerProcess() ole32.CoAddRefServerProcess
|
||||
@ stub CoAllowUnmarshalerCLSID
|
||||
@ stdcall CoCancelCall() ole32.CoCancelCall
|
||||
@ stdcall CoCopyProxy() ole32.CoCopyProxy
|
||||
@ stdcall CoCreateFreeThreadedMarshaler() ole32.CoCreateFreeThreadedMarshaler
|
||||
@ stdcall CoCreateGuid() ole32.CoCreateGuid
|
||||
@ stdcall CoCreateInstance() ole32.CoCreateInstance
|
||||
@ stdcall CoCreateInstanceEx() ole32.CoCreateInstanceEx
|
||||
@ stub CoCreateInstanceFromApp
|
||||
@ stub CoDecodeProxy
|
||||
@ stub CoDecrementMTAUsage
|
||||
@ stdcall CoDisableCallCancellation() ole32.CoDisableCallCancellation
|
||||
@ stdcall -version=0x600+ CoDisconnectContext() ole32.CoDisconnectContext
|
||||
@ stdcall CoDisconnectObject() ole32.CoDisconnectObject
|
||||
@ stdcall CoEnableCallCancellation() ole32.CoEnableCallCancellation
|
||||
@ stdcall CoFreeUnusedLibraries() ole32.CoFreeUnusedLibraries
|
||||
@ stdcall CoFreeUnusedLibrariesEx() ole32.CoFreeUnusedLibrariesEx
|
||||
@ stub CoGetApartmentType
|
||||
@ stdcall CoGetCallContext() ole32.CoGetCallContext
|
||||
@ stdcall CoGetCallerTID() ole32.CoGetCallerTID
|
||||
@ stdcall CoGetCancelObject() ole32.CoGetCancelObject
|
||||
@ stdcall CoGetClassObject() ole32.CoGetClassObject
|
||||
@ stdcall CoGetContextToken() ole32.CoGetContextToken
|
||||
@ stdcall CoGetCurrentLogicalThreadId() ole32.CoGetCurrentLogicalThreadId
|
||||
@ stdcall CoGetCurrentProcess() ole32.CoGetCurrentProcess
|
||||
@ stdcall CoGetDefaultContext() ole32.CoGetDefaultContext
|
||||
@ stdcall CoGetInterfaceAndReleaseStream() ole32.CoGetInterfaceAndReleaseStream
|
||||
@ stdcall CoGetMalloc() ole32.CoGetMalloc
|
||||
@ stdcall CoGetMarshalSizeMax() ole32.CoGetMarshalSizeMax
|
||||
@ stdcall CoGetObjectContext() ole32.CoGetObjectContext
|
||||
@ stdcall CoGetPSClsid() ole32.CoGetPSClsid
|
||||
@ stdcall CoGetStandardMarshal() ole32.CoGetStandardMarshal
|
||||
@ stdcall CoGetStdMarshalEx() ole32.CoGetStdMarshalEx
|
||||
@ stdcall CoGetTreatAsClass() ole32.CoGetTreatAsClass
|
||||
@ stdcall CoImpersonateClient() ole32.CoImpersonateClient
|
||||
@ stub CoIncrementMTAUsage
|
||||
@ stdcall CoInitializeEx() ole32.CoInitializeEx
|
||||
@ stdcall CoInitializeSecurity() ole32.CoInitializeSecurity
|
||||
@ stub CoInvalidateRemoteMachineBindings
|
||||
@ stdcall CoIsHandlerConnected() ole32.CoIsHandlerConnected
|
||||
@ stdcall CoLockObjectExternal() ole32.CoLockObjectExternal
|
||||
@ stdcall CoMarshalHresult() ole32.CoMarshalHresult
|
||||
@ stdcall CoMarshalInterThreadInterfaceInStream() ole32.CoMarshalInterThreadInterfaceInStream
|
||||
@ stdcall CoMarshalInterface() ole32.CoMarshalInterface
|
||||
@ stdcall CoQueryAuthenticationServices() ole32.CoQueryAuthenticationServices
|
||||
@ stdcall CoQueryClientBlanket() ole32.CoQueryClientBlanket
|
||||
@ stdcall CoQueryProxyBlanket() ole32.CoQueryProxyBlanket
|
||||
@ stub CoRegisterActivationFilter
|
||||
@ stdcall CoRegisterClassObject() ole32.CoRegisterClassObject
|
||||
@ stdcall CoRegisterPSClsid() ole32.CoRegisterPSClsid
|
||||
@ stdcall CoRegisterSurrogate() ole32.CoRegisterSurrogate
|
||||
@ stdcall CoReleaseMarshalData() ole32.CoReleaseMarshalData
|
||||
@ stdcall CoReleaseServerProcess() ole32.CoReleaseServerProcess
|
||||
@ stdcall CoResumeClassObjects() ole32.CoResumeClassObjects
|
||||
@ stdcall CoRevertToSelf() ole32.CoRevertToSelf
|
||||
@ stdcall CoRevokeClassObject() ole32.CoRevokeClassObject
|
||||
@ stub CoSetCancelObject
|
||||
@ stdcall CoSetProxyBlanket() ole32.CoSetProxyBlanket
|
||||
@ stdcall CoSuspendClassObjects() ole32.CoSuspendClassObjects
|
||||
@ stdcall CoSwitchCallContext() ole32.CoSwitchCallContext
|
||||
@ stdcall CoTaskMemAlloc() ole32.CoTaskMemAlloc
|
||||
@ stdcall CoTaskMemFree() ole32.CoTaskMemFree
|
||||
@ stdcall CoTaskMemRealloc() ole32.CoTaskMemRealloc
|
||||
@ stub CoTestCancel
|
||||
@ stdcall CoUninitialize() ole32.CoUninitialize
|
||||
@ stdcall CoUnmarshalHresult() ole32.CoUnmarshalHresult
|
||||
@ stdcall CoUnmarshalInterface() ole32.CoUnmarshalInterface
|
||||
@ stdcall CoWaitForMultipleHandles() ole32.CoWaitForMultipleHandles
|
||||
@ stub CoWaitForMultipleObjects
|
||||
@ stdcall CreateStreamOnHGlobal() ole32.CreateStreamOnHGlobal
|
||||
@ stdcall FreePropVariantArray() ole32.FreePropVariantArray
|
||||
@ stdcall GetHGlobalFromStream() ole32.GetHGlobalFromStream
|
||||
@ stdcall IIDFromString() ole32.IIDFromString
|
||||
@ stdcall ProgIDFromCLSID() ole32.ProgIDFromCLSID
|
||||
@ stdcall PropVariantClear() ole32.PropVariantClear
|
||||
@ stdcall PropVariantCopy() ole32.PropVariantCopy
|
||||
@ stub RoGetAgileReference
|
||||
@ stdcall StringFromCLSID() ole32.StringFromCLSID
|
||||
@ stdcall StringFromGUID2() ole32.StringFromGUID2
|
||||
@ stdcall StringFromIID() ole32.StringFromIID
|
94
dll/apisets/api-ms-win-core-com-private-l1-1-0.spec
Normal file
94
dll/apisets/api-ms-win-core-com-private-l1-1-0.spec
Normal file
@@ -0,0 +1,94 @@
|
||||
|
||||
# This file is autogenerated by update.py
|
||||
|
||||
@ stub CLSIDFromOle1Class
|
||||
@ stub CleanupOleStateInAllTls
|
||||
@ stub CleanupTlsOleState
|
||||
@ stub ClearCleanupFlag
|
||||
@ stub CoCreateErrorInfo
|
||||
@ stub CoCreateObjectInContext
|
||||
@ stub CoDeactivateObject
|
||||
@ stub CoGetActivationState
|
||||
@ stub CoGetApartmentID
|
||||
@ stub CoGetCallState
|
||||
@ stub CoGetClassVersion
|
||||
@ stub CoGetErrorInfo
|
||||
@ stdcall CoGetInstanceFromFile() ole32.CoGetInstanceFromFile
|
||||
@ stdcall CoGetInstanceFromIStorage() ole32.CoGetInstanceFromIStorage
|
||||
@ stub CoGetModuleType
|
||||
@ stub CoGetProcessIdentifier
|
||||
@ stub CoGetSystemSecurityPermissions
|
||||
@ stdcall CoInitializeWOW() ole32.CoInitializeWOW
|
||||
@ stub CoPopServiceDomain
|
||||
@ stub CoPushServiceDomain
|
||||
@ stub CoReactivateObject
|
||||
@ stdcall CoRegisterInitializeSpy() ole32.CoRegisterInitializeSpy
|
||||
@ stdcall CoRegisterMallocSpy() ole32.CoRegisterMallocSpy
|
||||
@ stdcall CoRegisterMessageFilter() ole32.CoRegisterMessageFilter
|
||||
@ stdcall CoRegisterSurrogateEx() ole32.CoRegisterSurrogateEx
|
||||
@ stub CoRetireServer
|
||||
@ stdcall CoRevokeInitializeSpy() ole32.CoRevokeInitializeSpy
|
||||
@ stdcall CoRevokeMallocSpy() ole32.CoRevokeMallocSpy
|
||||
@ stub CoSetErrorInfo
|
||||
@ stdcall CoUnloadingWOW() ole32.CoUnloadingWOW
|
||||
@ stub CoVrfCheckThreadState
|
||||
@ stub CoVrfGetThreadState
|
||||
@ stub CoVrfReleaseThreadState
|
||||
@ stdcall DllDebugObjectRPCHook() ole32.DllDebugObjectRPCHook
|
||||
@ stdcall EnableHookObject() ole32.EnableHookObject
|
||||
@ stub FreePropVariantArrayWorker
|
||||
@ stub GetCatalogHelper
|
||||
@ stub GetFuncDescs
|
||||
@ stdcall GetHookInterface() ole32.GetHookInterface
|
||||
@ stub HkOleRegisterObject
|
||||
@ stub InternalAppInvokeExceptionFilter
|
||||
@ stub InternalCCFreeUnused
|
||||
@ stub InternalCCGetClassInformationForDde
|
||||
@ stub InternalCCGetClassInformationFromKey
|
||||
@ stub InternalCCSetDdeServerWindow
|
||||
@ stub InternalCMLSendReceive
|
||||
@ stub InternalCallAsProxyExceptionFilter
|
||||
@ stub InternalCallFrameExceptionFilter
|
||||
@ stub InternalCallerIsAppContainer
|
||||
@ stub InternalCanMakeOutCall
|
||||
@ stub InternalCoIsSurrogateProcess
|
||||
@ stub InternalCoRegisterDisconnectCallback
|
||||
@ stub InternalCoRegisterSurrogatedObject
|
||||
@ stub InternalCoStdMarshalObject
|
||||
@ stub InternalCoUnregisterDisconnectCallback
|
||||
@ stub InternalCompleteObjRef
|
||||
@ stub InternalCreateCAggId
|
||||
@ stub InternalCreateIdentityHandler
|
||||
@ stub InternalDoATClassCreate
|
||||
@ stub InternalFillLocalOXIDInfo
|
||||
@ stub InternalFreeObjRef
|
||||
@ stub InternalGetWindowPropInterface
|
||||
@ stub InternalIrotEnumRunning
|
||||
@ stub InternalIrotGetObject
|
||||
@ stub InternalIrotGetTimeOfLastChange
|
||||
@ stub InternalIrotIsRunning
|
||||
@ stub InternalIrotNoteChangeTime
|
||||
@ stub InternalIrotRegister
|
||||
@ stub InternalIrotRevoke
|
||||
@ stub InternalIsApartmentInitialized
|
||||
@ stub InternalIsProcessInitialized
|
||||
@ stub InternalMarshalObjRef
|
||||
@ stub InternalNotifyDDStartOrStop
|
||||
@ stub InternalOleModalLoopBlockFn
|
||||
@ stub InternalRegisterWindowPropInterface
|
||||
@ stub InternalReleaseMarshalObjRef
|
||||
@ stub InternalSTAInvoke
|
||||
@ stub InternalServerExceptionFilter
|
||||
@ stub InternalSetAptCallCtrlOnTlsIfRequired
|
||||
@ stub InternalSetOleThunkWowPtr
|
||||
@ stub InternalStubInvoke
|
||||
@ stub InternalTlsAllocData
|
||||
@ stub InternalUnmarshalObjRef
|
||||
@ stub NdrExtStubInitialize
|
||||
@ stub NdrOleDllGetClassObject
|
||||
@ stub NdrOleInitializeExtension
|
||||
@ stub NdrpFindInterface
|
||||
@ stub ReleaseFuncDescs
|
||||
@ stub SetCleanupFlag
|
||||
@ stdcall UpdateDCOMSettings() ole32.UpdateDCOMSettings
|
||||
@ stub UpdateProcessTracing
|
21
dll/apisets/api-ms-win-core-comm-l1-1-0.spec
Normal file
21
dll/apisets/api-ms-win-core-comm-l1-1-0.spec
Normal file
@@ -0,0 +1,21 @@
|
||||
|
||||
# This file is autogenerated by update.py
|
||||
|
||||
@ stdcall ClearCommBreak() kernel32.ClearCommBreak
|
||||
@ stdcall ClearCommError() kernel32.ClearCommError
|
||||
@ stdcall EscapeCommFunction() kernel32.EscapeCommFunction
|
||||
@ stdcall GetCommConfig() kernel32.GetCommConfig
|
||||
@ stdcall GetCommMask() kernel32.GetCommMask
|
||||
@ stdcall GetCommModemStatus() kernel32.GetCommModemStatus
|
||||
@ stdcall GetCommProperties() kernel32.GetCommProperties
|
||||
@ stdcall GetCommState() kernel32.GetCommState
|
||||
@ stdcall GetCommTimeouts() kernel32.GetCommTimeouts
|
||||
@ stdcall PurgeComm() kernel32.PurgeComm
|
||||
@ stdcall SetCommBreak() kernel32.SetCommBreak
|
||||
@ stdcall SetCommConfig() kernel32.SetCommConfig
|
||||
@ stdcall SetCommMask() kernel32.SetCommMask
|
||||
@ stdcall SetCommState() kernel32.SetCommState
|
||||
@ stdcall SetCommTimeouts() kernel32.SetCommTimeouts
|
||||
@ stdcall SetupComm() kernel32.SetupComm
|
||||
@ stdcall TransmitCommChar() kernel32.TransmitCommChar
|
||||
@ stdcall WaitCommEvent() kernel32.WaitCommEvent
|
17
dll/apisets/api-ms-win-core-console-l1-1-0.spec
Normal file
17
dll/apisets/api-ms-win-core-console-l1-1-0.spec
Normal file
@@ -0,0 +1,17 @@
|
||||
|
||||
# This file is autogenerated by update.py
|
||||
|
||||
@ stdcall AllocConsole() kernel32.AllocConsole
|
||||
@ stdcall GetConsoleCP() kernel32.GetConsoleCP
|
||||
@ stdcall GetConsoleMode() kernel32.GetConsoleMode
|
||||
@ stdcall GetConsoleOutputCP() kernel32.GetConsoleOutputCP
|
||||
@ stdcall GetNumberOfConsoleInputEvents() kernel32.GetNumberOfConsoleInputEvents
|
||||
@ stdcall PeekConsoleInputA() kernel32.PeekConsoleInputA
|
||||
@ stdcall ReadConsoleA() kernel32.ReadConsoleA
|
||||
@ stdcall ReadConsoleInputA() kernel32.ReadConsoleInputA
|
||||
@ stdcall ReadConsoleInputW() kernel32.ReadConsoleInputW
|
||||
@ stdcall ReadConsoleW() kernel32.ReadConsoleW
|
||||
@ stdcall SetConsoleCtrlHandler() kernel32.SetConsoleCtrlHandler
|
||||
@ stdcall SetConsoleMode() kernel32.SetConsoleMode
|
||||
@ stdcall WriteConsoleA() kernel32.WriteConsoleA
|
||||
@ stdcall WriteConsoleW() kernel32.WriteConsoleW
|
41
dll/apisets/api-ms-win-core-console-l2-1-0.spec
Normal file
41
dll/apisets/api-ms-win-core-console-l2-1-0.spec
Normal file
@@ -0,0 +1,41 @@
|
||||
|
||||
# This file is autogenerated by update.py
|
||||
|
||||
@ stdcall AttachConsole() kernel32.AttachConsole
|
||||
@ stdcall CreateConsoleScreenBuffer() kernel32.CreateConsoleScreenBuffer
|
||||
@ stdcall FillConsoleOutputAttribute() kernel32.FillConsoleOutputAttribute
|
||||
@ stdcall FillConsoleOutputCharacterA() kernel32.FillConsoleOutputCharacterA
|
||||
@ stdcall FillConsoleOutputCharacterW() kernel32.FillConsoleOutputCharacterW
|
||||
@ stdcall FlushConsoleInputBuffer() kernel32.FlushConsoleInputBuffer
|
||||
@ stdcall FreeConsole() kernel32.FreeConsole
|
||||
@ stdcall GenerateConsoleCtrlEvent() kernel32.GenerateConsoleCtrlEvent
|
||||
@ stdcall GetConsoleCursorInfo() kernel32.GetConsoleCursorInfo
|
||||
@ stdcall GetConsoleScreenBufferInfo() kernel32.GetConsoleScreenBufferInfo
|
||||
@ stdcall -version=0x600+ GetConsoleScreenBufferInfoEx() kernel32.GetConsoleScreenBufferInfoEx
|
||||
@ stdcall GetConsoleTitleW() kernel32.GetConsoleTitleW
|
||||
@ stdcall GetLargestConsoleWindowSize() kernel32.GetLargestConsoleWindowSize
|
||||
@ stdcall PeekConsoleInputW() kernel32.PeekConsoleInputW
|
||||
@ stdcall ReadConsoleOutputA() kernel32.ReadConsoleOutputA
|
||||
@ stdcall ReadConsoleOutputAttribute() kernel32.ReadConsoleOutputAttribute
|
||||
@ stdcall ReadConsoleOutputCharacterA() kernel32.ReadConsoleOutputCharacterA
|
||||
@ stdcall ReadConsoleOutputCharacterW() kernel32.ReadConsoleOutputCharacterW
|
||||
@ stdcall ReadConsoleOutputW() kernel32.ReadConsoleOutputW
|
||||
@ stdcall ScrollConsoleScreenBufferA() kernel32.ScrollConsoleScreenBufferA
|
||||
@ stdcall ScrollConsoleScreenBufferW() kernel32.ScrollConsoleScreenBufferW
|
||||
@ stdcall SetConsoleActiveScreenBuffer() kernel32.SetConsoleActiveScreenBuffer
|
||||
@ stdcall SetConsoleCP() kernel32.SetConsoleCP
|
||||
@ stdcall SetConsoleCursorInfo() kernel32.SetConsoleCursorInfo
|
||||
@ stdcall SetConsoleCursorPosition() kernel32.SetConsoleCursorPosition
|
||||
@ stdcall SetConsoleOutputCP() kernel32.SetConsoleOutputCP
|
||||
@ stdcall -version=0x600+ SetConsoleScreenBufferInfoEx() kernel32.SetConsoleScreenBufferInfoEx
|
||||
@ stdcall SetConsoleScreenBufferSize() kernel32.SetConsoleScreenBufferSize
|
||||
@ stdcall SetConsoleTextAttribute() kernel32.SetConsoleTextAttribute
|
||||
@ stdcall SetConsoleTitleW() kernel32.SetConsoleTitleW
|
||||
@ stdcall SetConsoleWindowInfo() kernel32.SetConsoleWindowInfo
|
||||
@ stdcall WriteConsoleInputA() kernel32.WriteConsoleInputA
|
||||
@ stdcall WriteConsoleInputW() kernel32.WriteConsoleInputW
|
||||
@ stdcall WriteConsoleOutputA() kernel32.WriteConsoleOutputA
|
||||
@ stdcall WriteConsoleOutputAttribute() kernel32.WriteConsoleOutputAttribute
|
||||
@ stdcall WriteConsoleOutputCharacterA() kernel32.WriteConsoleOutputCharacterA
|
||||
@ stdcall WriteConsoleOutputCharacterW() kernel32.WriteConsoleOutputCharacterW
|
||||
@ stdcall WriteConsoleOutputW() kernel32.WriteConsoleOutputW
|
106
dll/apisets/api-ms-win-core-crt-l1-1-0.spec
Normal file
106
dll/apisets/api-ms-win-core-crt-l1-1-0.spec
Normal file
@@ -0,0 +1,106 @@
|
||||
|
||||
# This file is autogenerated by update.py
|
||||
|
||||
@ cdecl -arch=x86_64,arm __C_specific_handler() msvcrt.__C_specific_handler
|
||||
@ stdcall __isascii() msvcrt.__isascii
|
||||
@ stdcall _atoi64() msvcrt._atoi64
|
||||
@ stdcall _errno() msvcrt._errno
|
||||
@ stdcall -version=0x600+ -arch=i386 _except_handler4_common() msvcrt._except_handler4_common
|
||||
@ stdcall -arch=i386,x86_64,arm _fltused() ntdll._fltused
|
||||
@ stdcall -arch=i386 _ftol() msvcrt._ftol
|
||||
@ cdecl -version=0x600+ -arch=i386 _ftol2() msvcrt._ftol2
|
||||
@ cdecl -version=0x600+ -arch=i386 _ftol2_sse() msvcrt._ftol2_sse
|
||||
@ stub _i64tow_s
|
||||
@ stub _itow_s
|
||||
@ cdecl -arch=x86_64 _local_unwind() msvcrt._local_unwind
|
||||
@ stdcall -version=0x600+ -arch=i386 _local_unwind4() msvcrt._local_unwind4
|
||||
@ stub _ltow_s
|
||||
@ cdecl -arch=x86_64 _setjmp() msvcrt._setjmp
|
||||
@ cdecl -arch=x86_64 _setjmpex() msvcrt._setjmpex
|
||||
@ stub _snprintf_s
|
||||
@ stub _snwprintf_s
|
||||
@ stub _splitpath_s
|
||||
@ stdcall _stricmp() msvcrt._stricmp
|
||||
@ stub _strlwr_s
|
||||
@ stdcall _strnicmp() msvcrt._strnicmp
|
||||
@ stub _strupr_s
|
||||
@ stub _ui64tow_s
|
||||
@ stdcall _ultow() msvcrt._ultow
|
||||
@ stub _ultow_s
|
||||
@ stub _vsnprintf_s
|
||||
@ stub _vsnwprintf_s
|
||||
@ stdcall _wcsicmp() msvcrt._wcsicmp
|
||||
@ stub _wcslwr_s
|
||||
@ stdcall _wcsnicmp() msvcrt._wcsnicmp
|
||||
@ stdcall _wcstoi64() msvcrt._wcstoi64
|
||||
@ stdcall _wcstoui64() msvcrt._wcstoui64
|
||||
@ stub _wcsupr_s
|
||||
@ stub _wsplitpath_s
|
||||
@ stdcall _wtoi() msvcrt._wtoi
|
||||
@ stdcall _wtoi64() msvcrt._wtoi64
|
||||
@ stdcall _wtol() msvcrt._wtol
|
||||
@ stdcall atoi() msvcrt.atoi
|
||||
@ stdcall atol() msvcrt.atol
|
||||
@ stdcall isalnum() msvcrt.isalnum
|
||||
@ stdcall isdigit() msvcrt.isdigit
|
||||
@ stdcall isgraph() msvcrt.isgraph
|
||||
@ stdcall islower() msvcrt.islower
|
||||
@ stdcall isprint() msvcrt.isprint
|
||||
@ stdcall isspace() msvcrt.isspace
|
||||
@ stdcall isupper() msvcrt.isupper
|
||||
@ stdcall iswalnum() msvcrt.iswalnum
|
||||
@ stdcall iswascii() msvcrt.iswascii
|
||||
@ stdcall iswctype() msvcrt.iswctype
|
||||
@ stdcall iswdigit() msvcrt.iswdigit
|
||||
@ stdcall iswgraph() msvcrt.iswgraph
|
||||
@ stdcall iswprint() msvcrt.iswprint
|
||||
@ stdcall iswspace() msvcrt.iswspace
|
||||
@ cdecl -arch=x86_64 longjmp() msvcrt.longjmp
|
||||
@ stdcall memcmp() msvcrt.memcmp
|
||||
@ stdcall memcpy() msvcrt.memcpy
|
||||
@ stub memcpy_s
|
||||
@ stdcall memmove() msvcrt.memmove
|
||||
@ stub memmove_s
|
||||
@ stdcall memset() msvcrt.memset
|
||||
@ stub qsort_s
|
||||
@ stub sprintf_s
|
||||
@ stub sscanf_s
|
||||
@ stub strcat_s
|
||||
@ stdcall strchr() msvcrt.strchr
|
||||
@ stdcall strcmp() msvcrt.strcmp
|
||||
@ stub strcpy_s
|
||||
@ stdcall strcspn() msvcrt.strcspn
|
||||
@ stdcall strlen() msvcrt.strlen
|
||||
@ stub strncat_s
|
||||
@ stdcall strncmp() msvcrt.strncmp
|
||||
@ stub strncpy_s
|
||||
@ stub strnlen
|
||||
@ stdcall strpbrk() msvcrt.strpbrk
|
||||
@ stdcall strrchr() msvcrt.strrchr
|
||||
@ stdcall strstr() msvcrt.strstr
|
||||
@ stub strtok_s
|
||||
@ stdcall strtol() msvcrt.strtol
|
||||
@ stdcall strtoul() msvcrt.strtoul
|
||||
@ stub swprintf_s
|
||||
@ stdcall tolower() msvcrt.tolower
|
||||
@ stdcall toupper() msvcrt.toupper
|
||||
@ stdcall towlower() msvcrt.towlower
|
||||
@ stdcall towupper() msvcrt.towupper
|
||||
@ stub vsprintf_s
|
||||
@ stub vswprintf_s
|
||||
@ stub wcscat_s
|
||||
@ stdcall wcschr() msvcrt.wcschr
|
||||
@ stdcall wcscmp() msvcrt.wcscmp
|
||||
@ stub wcscpy_s
|
||||
@ stdcall wcscspn() msvcrt.wcscspn
|
||||
@ stdcall wcslen() msvcrt.wcslen
|
||||
@ stub wcsncat_s
|
||||
@ stdcall wcsncmp() msvcrt.wcsncmp
|
||||
@ stub wcsncpy_s
|
||||
@ stub wcsnlen
|
||||
@ stdcall wcspbrk() msvcrt.wcspbrk
|
||||
@ stdcall wcsrchr() msvcrt.wcsrchr
|
||||
@ stdcall wcsstr() msvcrt.wcsstr
|
||||
@ stub wcstok_s
|
||||
@ stdcall wcstol() msvcrt.wcstol
|
||||
@ stdcall wcstoul() msvcrt.wcstoul
|
21
dll/apisets/api-ms-win-core-crt-l2-1-0.spec
Normal file
21
dll/apisets/api-ms-win-core-crt-l2-1-0.spec
Normal file
@@ -0,0 +1,21 @@
|
||||
|
||||
# This file is autogenerated by update.py
|
||||
|
||||
@ stub __dllonexit3
|
||||
@ stdcall __wgetmainargs() msvcrt.__wgetmainargs
|
||||
@ stdcall _amsg_exit() msvcrt._amsg_exit
|
||||
@ stdcall _c_exit() msvcrt._c_exit
|
||||
@ stdcall _cexit() msvcrt._cexit
|
||||
@ stdcall _exit() msvcrt._exit
|
||||
@ stdcall _initterm() msvcrt._initterm
|
||||
@ stub _initterm_e
|
||||
@ stub _invalid_parameter
|
||||
@ stdcall _onexit() msvcrt._onexit
|
||||
@ stdcall _purecall() msvcrt._purecall
|
||||
@ stdcall _time64() msvcrt._time64
|
||||
@ extern -stub atexit msvcrt.atexit # the -stub is a HACK to fix VS < 2017 build!
|
||||
@ stdcall exit() msvcrt.exit
|
||||
@ stub hgets
|
||||
@ stub hwprintf
|
||||
@ stdcall time() msvcrt.time
|
||||
@ stdcall wprintf() msvcrt.wprintf
|
7
dll/apisets/api-ms-win-core-datetime-l1-1-0.spec
Normal file
7
dll/apisets/api-ms-win-core-datetime-l1-1-0.spec
Normal file
@@ -0,0 +1,7 @@
|
||||
|
||||
# This file is autogenerated by update.py
|
||||
|
||||
@ stdcall GetDateFormatA() kernel32.GetDateFormatA
|
||||
@ stdcall GetDateFormatW() kernel32.GetDateFormatW
|
||||
@ stdcall GetTimeFormatA() kernel32.GetTimeFormatA
|
||||
@ stdcall GetTimeFormatW() kernel32.GetTimeFormatW
|
9
dll/apisets/api-ms-win-core-datetime-l1-1-1.spec
Normal file
9
dll/apisets/api-ms-win-core-datetime-l1-1-1.spec
Normal file
@@ -0,0 +1,9 @@
|
||||
|
||||
# This file is autogenerated by update.py
|
||||
|
||||
@ stdcall GetDateFormatA() kernel32.GetDateFormatA
|
||||
@ stdcall -version=0x600+ GetDateFormatEx() kernel32.GetDateFormatEx
|
||||
@ stdcall GetDateFormatW() kernel32.GetDateFormatW
|
||||
@ stdcall GetTimeFormatA() kernel32.GetTimeFormatA
|
||||
@ stdcall -version=0x600+ GetTimeFormatEx() kernel32.GetTimeFormatEx
|
||||
@ stdcall GetTimeFormatW() kernel32.GetTimeFormatW
|
7
dll/apisets/api-ms-win-core-debug-l1-1-0.spec
Normal file
7
dll/apisets/api-ms-win-core-debug-l1-1-0.spec
Normal file
@@ -0,0 +1,7 @@
|
||||
|
||||
# This file is autogenerated by update.py
|
||||
|
||||
@ stdcall DebugBreak() kernel32.DebugBreak
|
||||
@ stdcall IsDebuggerPresent() kernel32.IsDebuggerPresent
|
||||
@ stdcall OutputDebugStringA() kernel32.OutputDebugStringA
|
||||
@ stdcall OutputDebugStringW() kernel32.OutputDebugStringW
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user