Compare commits

...

11 Commits

Author SHA1 Message Date
Ziliang Guo
d39dd8a4b8 Fix bad revert of wininet wine sync and remove the actual sync.
See issue #5663 for more details.

svn path=/branches/ros-branch-0_3_12/; revision=49121
2010-10-11 20:21:12 +00:00
Ziliang Guo
0fac188072 Revert wininet sync take two. Hopefully caught all of the changes this in winnet folder this time.
See issue #5663 for more details.

svn path=/branches/ros-branch-0_3_12/; revision=49120
2010-10-11 19:57:17 +00:00
Ziliang Guo
bb273dbd90 Revert wininet Wine 1.2RC sync for release. Resource file left intact.
See issue #5663 for more details.

svn path=/branches/ros-branch-0_3_12/; revision=49119
2010-10-11 19:19:48 +00:00
Colin Finck
3290c44dfa Remove the entries for the old boot method.
If the old boot method is finally obsolete, this should go to Trunk as well along with removing the old boot method entirely from Freeloader.

svn path=/branches/ros-branch-0_3_12/; revision=49052
2010-10-08 14:53:51 +00:00
Colin Finck
8c9ff4bab8 Hack: Hackfix the HitTest problem in mstsc as it was done for previous releases
svn path=/branches/ros-branch-0_3_12/; revision=49051
2010-10-08 14:33:49 +00:00
Colin Finck
37144b8145 - Change the version to 0.3.12
- Set "Angelus_02_ROSWP.bmp" as the default wallpaper
- Add a shortcut to RApps to the Desktop

svn path=/branches/ros-branch-0_3_12/; revision=49038
2010-10-07 18:31:36 +00:00
Kamil Hornicek
3e286e5559 Don't deny people their bugchecks. Merge r49031.
svn path=/branches/ros-branch-0_3_12/; revision=49032
2010-10-07 14:07:45 +00:00
Sylvain Petreolle
ca3ffb137e Merge 48968 to 0.3.12 branch.
svn path=/branches/ros-branch-0_3_12/; revision=48971
2010-10-03 21:33:31 +00:00
Daniel Reimer
256b84b2b9 Merge 48915 and 48923 to 0.3.12 branch.
svn path=/branches/ros-branch-0_3_12/; revision=48969
2010-10-03 17:02:54 +00:00
Kamil Hornicek
37a0f9ada3 Merge 48917
svn path=/branches/ros-branch-0_3_12/; revision=48920
2010-09-28 14:41:18 +00:00
Kamil Hornicek
ae25ba5bad Fixes for bugs: 5591, 5482, 5517, 5472, 5554 and 5567
These issues are either already fixed in the yarotows branch or will be solved with next sync of corresponding libs. Merging or doing full syncs before release could cause more troubles so I hope these (hack)fixes are justified.

svn path=/branches/ros-branch-0_3_12/; revision=48911
2010-09-27 21:12:09 +00:00
29 changed files with 228 additions and 248 deletions

View File

@@ -198,19 +198,12 @@ ReLoadGeneralPage(PINFO pInfo)
static VOID static VOID
GeneralOnInit(HWND hwnd, GeneralOnInit(PINFO pInfo)
PINFO pInfo)
{ {
SetWindowLongPtrW(hwnd,
GWLP_USERDATA,
(LONG_PTR)pInfo);
pInfo->hGeneralPage = hwnd;
SetWindowPos(pInfo->hGeneralPage, SetWindowPos(pInfo->hGeneralPage,
NULL, NULL,
2, 13,
22, 110,
0, 0,
0, 0,
SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER); SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);
@@ -256,13 +249,14 @@ GeneralDlgProc(HWND hDlg,
WPARAM wParam, WPARAM wParam,
LPARAM lParam) LPARAM lParam)
{ {
PINFO pInfo = (PINFO)GetWindowLongPtrW(hDlg, PINFO pInfo = (PINFO)GetWindowLongPtrW(GetParent(hDlg),
GWLP_USERDATA); GWLP_USERDATA);
switch (message) switch (message)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
GeneralOnInit(hDlg, (PINFO)lParam); pInfo->hGeneralPage = hDlg;
GeneralOnInit(pInfo);
return TRUE; return TRUE;
case WM_COMMAND: case WM_COMMAND:
@@ -746,23 +740,16 @@ ReLoadDisplayPage(PINFO pInfo)
static VOID static VOID
DisplayOnInit(HWND hwnd, DisplayOnInit(PINFO pInfo)
PINFO pInfo)
{ {
DISPLAY_DEVICEW displayDevice; DISPLAY_DEVICEW displayDevice;
DWORD iDevNum = 0; DWORD iDevNum = 0;
BOOL GotDev = FALSE; BOOL GotDev = FALSE;
SetWindowLongPtrW(hwnd,
GWLP_USERDATA,
(LONG_PTR)pInfo);
pInfo->hDisplayPage = hwnd;
SetWindowPos(pInfo->hDisplayPage, SetWindowPos(pInfo->hDisplayPage,
NULL, NULL,
2, 13,
22, 110,
0, 0,
0, 0,
SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER); SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);
@@ -836,13 +823,14 @@ DisplayDlgProc(HWND hDlg,
WPARAM wParam, WPARAM wParam,
LPARAM lParam) LPARAM lParam)
{ {
PINFO pInfo = (PINFO)GetWindowLongPtrW(hDlg, PINFO pInfo = (PINFO)GetWindowLongPtrW(GetParent(hDlg),
GWLP_USERDATA); GWLP_USERDATA);
switch (message) switch (message)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
DisplayOnInit(hDlg, (PINFO)lParam); pInfo->hDisplayPage = hDlg;
DisplayOnInit(pInfo);
return TRUE; return TRUE;
case WM_DRAWITEM: case WM_DRAWITEM:
@@ -986,11 +974,10 @@ OnMainCreate(HWND hwnd,
pInfo->hTab = GetDlgItem(hwnd, IDC_TAB); pInfo->hTab = GetDlgItem(hwnd, IDC_TAB);
if (pInfo->hTab) if (pInfo->hTab)
{ {
if (CreateDialogParamW(hInst, if (CreateDialogW(hInst,
MAKEINTRESOURCEW(IDD_GENERAL), MAKEINTRESOURCEW(IDD_GENERAL),
pInfo->hTab, hwnd,
GeneralDlgProc, (DLGPROC)GeneralDlgProc))
(LPARAM)pInfo))
{ {
WCHAR str[256]; WCHAR str[256];
ZeroMemory(&item, sizeof(TCITEM)); ZeroMemory(&item, sizeof(TCITEM));
@@ -1001,11 +988,10 @@ OnMainCreate(HWND hwnd,
(void)TabCtrl_InsertItem(pInfo->hTab, 0, &item); (void)TabCtrl_InsertItem(pInfo->hTab, 0, &item);
} }
if (CreateDialogParamW(hInst, if (CreateDialogW(hInst,
MAKEINTRESOURCEW(IDD_DISPLAY), MAKEINTRESOURCEW(IDD_DISPLAY),
pInfo->hTab, hwnd,
DisplayDlgProc, (DLGPROC)DisplayDlgProc))
(LPARAM)pInfo))
{ {
WCHAR str[256]; WCHAR str[256];
ZeroMemory(&item, sizeof(TCITEM)); ZeroMemory(&item, sizeof(TCITEM));

View File

@@ -513,18 +513,6 @@ CreateFreeLoaderIniForReactos(PWCHAR IniPath,
L"/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /RDIMAGEPATH=reactos.img /RDIMAGEOFFSET=32256"); L"/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /RDIMAGEPATH=reactos.img /RDIMAGEOFFSET=32256");
#endif #endif
/* ReactOS_old */
CreateFreeLoaderEntry(IniCache, IniSection,
L"ReactOS_old", L"\"ReactOS (old boot method)\"",
L"ReactOS", ArcPath,
L"");
/* ReactOS_Debug_old */
CreateFreeLoaderEntry(IniCache, IniSection,
L"ReactOS_Debug_old", L"\"ReactOS (Debug, old boot method)\"",
L"ReactOS", ArcPath,
L"/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS");
/* Save the ini file */ /* Save the ini file */
IniCacheSave(IniCache, IniPath); IniCacheSave(IniCache, IniPath);
IniCacheDestroy(IniCache); IniCacheDestroy(IniCache);

View File

@@ -985,13 +985,13 @@ static MUI_ENTRY etEEBootLoaderEntries[] =
{ {
8, 8,
12, 12,
"Install bootloader on the harddisk (MBR and VBR).", "Paigalda alglaadur k<EFBFBD>vakettale (MBR ja VBR).",
TEXT_STYLE_NORMAL TEXT_STYLE_NORMAL
}, },
{ {
8, 8,
13, 13,
"Install bootloader on the harddisk (VBR only).", "Paigalda alglaadur k<EFBFBD>vakettale (ainult VBR).",
TEXT_STYLE_NORMAL TEXT_STYLE_NORMAL
}, },
{ {

View File

@@ -985,31 +985,31 @@ static MUI_ENTRY ukUABootLoaderEntries[] =
{ {
6, 6,
8, 8,
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> boot loader", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠦㢠<EFBFBD>",
TEXT_STYLE_NORMAL TEXT_STYLE_NORMAL
}, },
{ {
8, 8,
12, 12,
"<EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20> <20><> <20><><EFBFBD> <EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (MBR i VBR).", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠦㢠<EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (MBR i VBR).",
TEXT_STYLE_NORMAL TEXT_STYLE_NORMAL
}, },
{ {
8, 8,
13, 13,
"<EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20> <20><> <20><><EFBFBD> <EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> VBR).", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠦㢠<EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> VBR).",
TEXT_STYLE_NORMAL TEXT_STYLE_NORMAL
}, },
{ {
8, 8,
14, 14,
"<EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20> <20><> <20><><EFBFBD> <EFBFBD> <20> <20><><EFBFBD><E1AAA5>.", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⠦㢠<EFBFBD> <20><EFBFBD> <20><><EFBFBD><E1AAA5>.",
TEXT_STYLE_NORMAL TEXT_STYLE_NORMAL
}, },
{ {
8, 8,
15, 15,
"<EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <EFBFBD> <20> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>.", "<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⠦㢠<EFBFBD>.",
TEXT_STYLE_NORMAL TEXT_STYLE_NORMAL
}, },
{ {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -21,10 +21,6 @@ SelectedColor=Gray
[Operating Systems] [Operating Systems]
Setup="Setup" Setup="Setup"
Setup_old="Setup (old boot method)"
[Setup] [Setup]
BootType=ReactOSSetup2 BootType=ReactOSSetup2
[Setup_old]
BootType=ReactOSSetup

View File

@@ -21,14 +21,8 @@ SelectedColor=Gray
[Operating Systems] [Operating Systems]
ReactOS="ReactOS" ReactOS="ReactOS"
Reactos_old="ReactOS (old boot method)"
[ReactOS] [ReactOS]
BootType=Windows2003 BootType=Windows2003
SystemPath=LiveCD\reactos SystemPath=LiveCD\reactos
Options=/DEBUGPORT=COM1 /SOS /MININT Options=/DEBUGPORT=COM1 /SOS /MININT
[Reactos_old]
BootType=ReactOS
SystemPath=LiveCD\reactos
Options=/DEBUGPORT=COM1 /SOS

View File

@@ -119,6 +119,7 @@ static void wmSetPixelFormat(WMesaFramebuffer pwfb, HDC hDC)
/* Only 16 and 32 bit targets are supported now */ /* Only 16 and 32 bit targets are supported now */
assert(pwfb->cColorBits == 0 || assert(pwfb->cColorBits == 0 ||
pwfb->cColorBits == 8 ||
pwfb->cColorBits == 16 || pwfb->cColorBits == 16 ||
pwfb->cColorBits == 24 || pwfb->cColorBits == 24 ||
pwfb->cColorBits == 32); pwfb->cColorBits == 32);

View File

@@ -126,7 +126,7 @@ const GLubyte * GLAPIENTRY
_mesa_GetString( GLenum name ) _mesa_GetString( GLenum name )
{ {
GET_CURRENT_CONTEXT(ctx); GET_CURRENT_CONTEXT(ctx);
static const char *vendor = "Brian Paul"; static const char *vendor = "Mesa";
static const char *renderer = "Mesa"; static const char *renderer = "Mesa";
if (!ctx) if (!ctx)

View File

@@ -2421,6 +2421,27 @@ static BOOL PROPSHEET_RemovePage(HWND hwndDlg,
return FALSE; return FALSE;
} }
#ifndef DISABLE_USER32_HACKS
BOOL CALLBACK
EnumChildProc(HWND hwnd, LPARAM lParam)
{
WCHAR szType[20];
RealGetWindowClassW(hwnd, szType, 20);
if (strcmpW(szType, WC_EDITW) == 0)
{
if (IsWindowEnabled(hwnd) && IsWindowVisible(hwnd))
{
*(PLONG)lParam = TRUE;
return FALSE;
}
}
return TRUE;
}
#endif
/****************************************************************************** /******************************************************************************
* PROPSHEET_SetWizButtons * PROPSHEET_SetWizButtons
* *
@@ -2436,12 +2457,17 @@ static void PROPSHEET_SetWizButtons(HWND hwndDlg, DWORD dwFlags)
HWND hwndNext = GetDlgItem(hwndDlg, IDC_NEXT_BUTTON); HWND hwndNext = GetDlgItem(hwndDlg, IDC_NEXT_BUTTON);
HWND hwndFinish = GetDlgItem(hwndDlg, IDC_FINISH_BUTTON); HWND hwndFinish = GetDlgItem(hwndDlg, IDC_FINISH_BUTTON);
#ifndef DISABLE_USER32_HACKS
LONG Found = FALSE;
#endif
TRACE("%d\n", dwFlags); TRACE("%d\n", dwFlags);
EnableWindow(hwndBack, FALSE); EnableWindow(hwndBack, FALSE);
EnableWindow(hwndNext, FALSE); EnableWindow(hwndNext, FALSE);
EnableWindow(hwndFinish, FALSE); EnableWindow(hwndFinish, FALSE);
#ifdef DISABLE_USER32_HACKS
/* set the default pushbutton to an enabled button */ /* set the default pushbutton to an enabled button */
if (((dwFlags & PSWIZB_FINISH) || psInfo->hasFinish) && !(dwFlags & PSWIZB_DISABLEDFINISH)) if (((dwFlags & PSWIZB_FINISH) || psInfo->hasFinish) && !(dwFlags & PSWIZB_DISABLEDFINISH))
SendMessageW(hwndDlg, DM_SETDEFID, IDC_FINISH_BUTTON, 0); SendMessageW(hwndDlg, DM_SETDEFID, IDC_FINISH_BUTTON, 0);
@@ -2451,6 +2477,7 @@ static void PROPSHEET_SetWizButtons(HWND hwndDlg, DWORD dwFlags)
SendMessageW(hwndDlg, DM_SETDEFID, IDC_BACK_BUTTON, 0); SendMessageW(hwndDlg, DM_SETDEFID, IDC_BACK_BUTTON, 0);
else else
SendMessageW(hwndDlg, DM_SETDEFID, IDCANCEL, 0); SendMessageW(hwndDlg, DM_SETDEFID, IDCANCEL, 0);
#endif
if (dwFlags & PSWIZB_BACK) if (dwFlags & PSWIZB_BACK)
@@ -2482,6 +2509,39 @@ static void PROPSHEET_SetWizButtons(HWND hwndDlg, DWORD dwFlags)
} }
else if (!(dwFlags & PSWIZB_DISABLEDFINISH)) else if (!(dwFlags & PSWIZB_DISABLEDFINISH))
EnableWindow(hwndFinish, TRUE); EnableWindow(hwndFinish, TRUE);
#ifndef DISABLE_USER32_HACKS
/* try to find an edit control that deserves focus */
EnumChildWindows(PropSheet_GetCurrentPageHwnd(hwndDlg), EnumChildProc, (LPARAM)&Found);
/* set the default pushbutton to an enabled button and give it focus if we didn't find any edit control*/
if (((dwFlags & PSWIZB_FINISH) || psInfo->hasFinish) && !(dwFlags & PSWIZB_DISABLEDFINISH))
{
SendMessageW(hwndDlg, DM_SETDEFID, IDC_FINISH_BUTTON, 0);
if(!Found)
SetFocus(hwndFinish);
}
else if (dwFlags & PSWIZB_NEXT)
{
SendMessageW(hwndDlg, DM_SETDEFID, IDC_NEXT_BUTTON, 0);
if(!Found)
SetFocus(hwndNext);
}
else if (dwFlags & PSWIZB_BACK)
{
SendMessageW(hwndDlg, DM_SETDEFID, IDC_BACK_BUTTON, 0);
if(!Found)
SetFocus(hwndBack);
}
else
{
SendMessageW(hwndDlg, DM_SETDEFID, IDCANCEL, 0);
if(!Found)
SetFocus(GetDlgItem(hwndDlg, IDCANCEL));
}
#endif
} }
/****************************************************************************** /******************************************************************************

View File

@@ -33,7 +33,8 @@
* *
* missing styles: TVS_FULLROWSELECT, TVS_INFOTIP, TVS_RTLREADING, * missing styles: TVS_FULLROWSELECT, TVS_INFOTIP, TVS_RTLREADING,
* *
* missing item styles: TVIS_CUT, TVIS_EXPANDPARTIAL * missing item styles: TVIS_CUT, TVIS_EXPANDPARTIAL, TVIS_EX_FLAT,
* TVIS_EX_DISABLED
* *
* Make the insertion mark look right. * Make the insertion mark look right.
* Scroll (instead of repaint) as much as possible. * Scroll (instead of repaint) as much as possible.
@@ -1005,7 +1006,7 @@ TREEVIEW_AllocateItem(const TREEVIEW_INFO *infoPtr)
* inc/dec to toggle the images. */ * inc/dec to toggle the images. */
newItem->iImage = 0; newItem->iImage = 0;
newItem->iSelectedImage = 0; newItem->iSelectedImage = 0;
newItem->iExpandedImage = 0; newItem->iExpandedImage = (WORD)I_IMAGENONE;
if (DPA_InsertPtr(infoPtr->items, INT_MAX, newItem) == -1) if (DPA_InsertPtr(infoPtr->items, INT_MAX, newItem) == -1)
{ {
@@ -2142,6 +2143,13 @@ TREEVIEW_GetItemT(const TREEVIEW_INFO *infoPtr, LPTVITEMEXW tvItem, BOOL isW)
} }
} }
} }
if (tvItem->mask & TVIF_STATEEX)
{
FIXME("Extended item state not supported, returning 0.\n");
tvItem->uStateEx = 0;
}
TRACE("item <%p>, txt %p, img %p, mask %x\n", TRACE("item <%p>, txt %p, img %p, mask %x\n",
wineItem, tvItem->pszText, &tvItem->iImage, tvItem->mask); wineItem, tvItem->pszText, &tvItem->iImage, tvItem->mask);
@@ -2575,7 +2583,7 @@ TREEVIEW_DrawItem(const TREEVIEW_INFO *infoPtr, HDC hdc, TREEVIEW_ITEM *wineItem
/* The item is currently selected */ /* The item is currently selected */
imageIndex = wineItem->iSelectedImage; imageIndex = wineItem->iSelectedImage;
} }
else if ((wineItem->state & TVIS_EXPANDED) && (wineItem->iExpandedImage >= 0)) else if ((wineItem->state & TVIS_EXPANDED) && (wineItem->iExpandedImage != (WORD)I_IMAGENONE))
{ {
/* The item is currently not selected but expanded */ /* The item is currently not selected but expanded */
imageIndex = wineItem->iExpandedImage; imageIndex = wineItem->iExpandedImage;
@@ -2917,6 +2925,7 @@ TREEVIEW_Paint(TREEVIEW_INFO *infoPtr, HDC hdc_ref)
{ {
hdc = hdc_ref; hdc = hdc_ref;
GetClientRect(infoPtr->hwnd, &rc); GetClientRect(infoPtr->hwnd, &rc);
TREEVIEW_FillBkgnd(infoPtr, hdc, &rc);
} }
else else
{ {
@@ -3309,7 +3318,7 @@ TREEVIEW_Collapse(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem,
static BOOL static BOOL
TREEVIEW_Expand(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem, TREEVIEW_Expand(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem,
BOOL bExpandPartial, BOOL bUser) BOOL partial, BOOL user)
{ {
LONG scrollDist; LONG scrollDist;
LONG orgNextTop = 0; LONG orgNextTop = 0;
@@ -3317,7 +3326,7 @@ TREEVIEW_Expand(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem,
TREEVIEW_ITEM *nextItem, *tmpItem; TREEVIEW_ITEM *nextItem, *tmpItem;
BOOL sendsNotifications; BOOL sendsNotifications;
TRACE("(%p, %p, partial=%d, %d\n", infoPtr, wineItem, bExpandPartial, bUser); TRACE("(%p, %p, partial=%d, %d\n", infoPtr, wineItem, partial, user);
if (wineItem->state & TVIS_EXPANDED) if (wineItem->state & TVIS_EXPANDED)
return TRUE; return TRUE;
@@ -3338,7 +3347,7 @@ TREEVIEW_Expand(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem,
TRACE("TVE_EXPAND %p %s\n", wineItem, TREEVIEW_ItemName(wineItem)); TRACE("TVE_EXPAND %p %s\n", wineItem, TREEVIEW_ItemName(wineItem));
sendsNotifications = bUser || ((wineItem->cChildren != 0) && sendsNotifications = user || ((wineItem->cChildren != 0) &&
!(wineItem->state & TVIS_EXPANDEDONCE)); !(wineItem->state & TVIS_EXPANDEDONCE));
if (sendsNotifications) if (sendsNotifications)
{ {
@@ -3353,7 +3362,7 @@ TREEVIEW_Expand(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem,
wineItem->state |= TVIS_EXPANDED; wineItem->state |= TVIS_EXPANDED;
if (bExpandPartial) if (partial)
FIXME("TVE_EXPANDPARTIAL not implemented\n"); FIXME("TVE_EXPANDPARTIAL not implemented\n");
if (ISVISIBLE(wineItem)) if (ISVISIBLE(wineItem))
@@ -3419,6 +3428,58 @@ TREEVIEW_Expand(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem,
return TRUE; return TRUE;
} }
/* Handler for TVS_SINGLEEXPAND behaviour. Used on response
to mouse messages and TVM_SELECTITEM.
selection - previously selected item, used to collapse a part of a tree
item - new selected item
*/
static void TREEVIEW_SingleExpand(TREEVIEW_INFO *infoPtr,
HTREEITEM selection, HTREEITEM item)
{
TREEVIEW_ITEM *SelItem;
if ((infoPtr->dwStyle & TVS_SINGLEEXPAND) == 0 || infoPtr->hwndEdit || !item) return;
TREEVIEW_SendTreeviewNotify(infoPtr, TVN_SINGLEEXPAND, TVC_UNKNOWN, TVIF_HANDLE | TVIF_PARAM, item, 0);
/*
* Close the previous selection all the way to the root
* as long as the new selection is not a child
*/
if(selection && (selection != item))
{
BOOL closeit = TRUE;
SelItem = item;
/* determine if the hitItem is a child of the currently selected item */
while(closeit && SelItem && TREEVIEW_ValidItem(infoPtr, SelItem) &&
(SelItem->parent != infoPtr->root))
{
closeit = (SelItem != selection);
SelItem = SelItem->parent;
}
if(closeit)
{
if(TREEVIEW_ValidItem(infoPtr, selection))
SelItem = selection;
while(SelItem && (SelItem != item) && TREEVIEW_ValidItem(infoPtr, SelItem) &&
SelItem->parent != infoPtr->root)
{
TREEVIEW_Collapse(infoPtr, SelItem, FALSE, FALSE);
SelItem = SelItem->parent;
}
}
}
/*
* Expand the current item
*/
TREEVIEW_Expand(infoPtr, item, FALSE, FALSE);
}
static BOOL static BOOL
TREEVIEW_Toggle(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem, BOOL bUser) TREEVIEW_Toggle(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem, BOOL bUser)
{ {
@@ -4136,58 +4197,11 @@ TREEVIEW_LButtonDown(TREEVIEW_INFO *infoPtr, LPARAM lParam)
} }
else if (ht.flags & (TVHT_ONITEMICON|TVHT_ONITEMLABEL)) /* select the item if the hit was inside of the icon or text */ else if (ht.flags & (TVHT_ONITEMICON|TVHT_ONITEMLABEL)) /* select the item if the hit was inside of the icon or text */
{ {
/* TREEVIEW_ITEM *selection = infoPtr->selectedItem;
* if we are TVS_SINGLEEXPAND then we want this single click to
* do a bunch of things.
*/
if((infoPtr->dwStyle & TVS_SINGLEEXPAND) &&
(infoPtr->hwndEdit == 0))
{
TREEVIEW_ITEM *SelItem;
/*
* Send the notification
*/
TREEVIEW_SendTreeviewNotify(infoPtr, TVN_SINGLEEXPAND, TVC_UNKNOWN, TVIF_HANDLE | TVIF_PARAM, ht.hItem, 0);
/*
* Close the previous selection all the way to the root
* as long as the new selection is not a child
*/
if((infoPtr->selectedItem)
&& (infoPtr->selectedItem != ht.hItem))
{
BOOL closeit = TRUE;
SelItem = ht.hItem;
/* determine if the hitItem is a child of the currently selected item */
while(closeit && SelItem && TREEVIEW_ValidItem(infoPtr, SelItem) && (SelItem != infoPtr->root))
{
closeit = (SelItem != infoPtr->selectedItem);
SelItem = SelItem->parent;
}
if(closeit)
{
if(TREEVIEW_ValidItem(infoPtr, infoPtr->selectedItem))
SelItem = infoPtr->selectedItem;
while(SelItem && (SelItem != ht.hItem) && TREEVIEW_ValidItem(infoPtr, SelItem) && (SelItem != infoPtr->root))
{
TREEVIEW_Collapse(infoPtr, SelItem, FALSE, FALSE);
SelItem = SelItem->parent;
}
}
}
/*
* Expand the current item
*/
TREEVIEW_Expand(infoPtr, ht.hItem, TVE_TOGGLE, FALSE);
}
/* Select the current item */ /* Select the current item */
TREEVIEW_DoSelectItem(infoPtr, TVGN_CARET, ht.hItem, TVC_BYMOUSE); TREEVIEW_DoSelectItem(infoPtr, TVGN_CARET, ht.hItem, TVC_BYMOUSE);
TREEVIEW_SingleExpand(infoPtr, selection, ht.hItem);
} }
else if (ht.flags & TVHT_ONITEMSTATEICON) else if (ht.flags & TVHT_ONITEMSTATEICON)
{ {
@@ -4350,6 +4364,9 @@ TREEVIEW_DoSelectItem(TREEVIEW_INFO *infoPtr, INT action, HTREEITEM newSelect,
switch (action) switch (action)
{ {
case TVGN_CARET|TVSI_NOSINGLEEXPAND:
FIXME("TVSI_NOSINGLEEXPAND specified.\n");
/* Fall through */
case TVGN_CARET: case TVGN_CARET:
prevSelect = infoPtr->selectedItem; prevSelect = infoPtr->selectedItem;
@@ -4419,7 +4436,9 @@ TREEVIEW_DoSelectItem(TREEVIEW_INFO *infoPtr, INT action, HTREEITEM newSelect,
static LRESULT static LRESULT
TREEVIEW_SelectItem(TREEVIEW_INFO *infoPtr, INT wParam, HTREEITEM item) TREEVIEW_SelectItem(TREEVIEW_INFO *infoPtr, INT wParam, HTREEITEM item)
{ {
if (item != NULL && !TREEVIEW_ValidItem(infoPtr, item)) TREEVIEW_ITEM *selection = infoPtr->selectedItem;
if (item && !TREEVIEW_ValidItem(infoPtr, item))
return FALSE; return FALSE;
TRACE("%p (%s) %d\n", item, TREEVIEW_ItemName(item), wParam); TRACE("%p (%s) %d\n", item, TREEVIEW_ItemName(item), wParam);
@@ -4427,6 +4446,8 @@ TREEVIEW_SelectItem(TREEVIEW_INFO *infoPtr, INT wParam, HTREEITEM item)
if (!TREEVIEW_DoSelectItem(infoPtr, wParam, item, TVC_UNKNOWN)) if (!TREEVIEW_DoSelectItem(infoPtr, wParam, item, TVC_UNKNOWN))
return FALSE; return FALSE;
TREEVIEW_SingleExpand(infoPtr, selection, item);
return TRUE; return TRUE;
} }
@@ -5824,10 +5845,10 @@ TREEVIEW_Unregister(void)
/* Tree Verification ****************************************************/ /* Tree Verification ****************************************************/
static inline void static inline void
TREEVIEW_VerifyChildren(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item); TREEVIEW_VerifyChildren(TREEVIEW_INFO *infoPtr, const TREEVIEW_ITEM *item);
static inline void TREEVIEW_VerifyItemCommon(TREEVIEW_INFO *infoPtr, static inline void TREEVIEW_VerifyItemCommon(TREEVIEW_INFO *infoPtr,
TREEVIEW_ITEM *item) const TREEVIEW_ITEM *item)
{ {
assert(infoPtr != NULL); assert(infoPtr != NULL);
assert(item != NULL); assert(item != NULL);
@@ -5866,7 +5887,7 @@ static inline void TREEVIEW_VerifyItemCommon(TREEVIEW_INFO *infoPtr,
} }
static inline void static inline void
TREEVIEW_VerifyItem(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item) TREEVIEW_VerifyItem(TREEVIEW_INFO *infoPtr, const TREEVIEW_ITEM *item)
{ {
assert(item != NULL); assert(item != NULL);
@@ -5882,9 +5903,9 @@ TREEVIEW_VerifyItem(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item)
} }
static inline void static inline void
TREEVIEW_VerifyChildren(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item) TREEVIEW_VerifyChildren(TREEVIEW_INFO *infoPtr, const TREEVIEW_ITEM *item)
{ {
TREEVIEW_ITEM *child; const TREEVIEW_ITEM *child;
assert(item != NULL); assert(item != NULL);
for (child = item->firstChild; child != NULL; child = child->nextSibling) for (child = item->firstChild; child != NULL; child = child->nextSibling)

View File

@@ -1765,7 +1765,7 @@ GetLocaleInfoW (
} }
else else
{ {
memcpy( lpLCData, ch + 1, *ch * sizeof(WCHAR) ); memcpy( lpLCData, ch + 1, nRet * sizeof(WCHAR) );
if (LCType != LOCALE_FONTSIGNATURE) lpLCData[nRet-1] = 0; if (LCType != LOCALE_FONTSIGNATURE) lpLCData[nRet-1] = 0;
} }
return nRet; return nRet;

View File

@@ -760,6 +760,7 @@ CreateShortcuts(VOID)
/* Create desktop shortcuts */ /* Create desktop shortcuts */
CreateShortcut(CSIDL_DESKTOP, NULL, IDS_SHORT_CMD, _T("%SystemRoot%\\system32\\cmd.exe"), IDS_CMT_CMD, TRUE); CreateShortcut(CSIDL_DESKTOP, NULL, IDS_SHORT_CMD, _T("%SystemRoot%\\system32\\cmd.exe"), IDS_CMT_CMD, TRUE);
CreateShortcut(CSIDL_DESKTOP, NULL, IDS_SHORT_DOWNLOADER, _T("%SystemRoot%\\system32\\rapps.exe"), IDS_CMT_DOWNLOADER, TRUE);
/* Create program startmenu shortcuts */ /* Create program startmenu shortcuts */
CreateShortcut(CSIDL_PROGRAMS, NULL, IDS_SHORT_EXPLORER, _T("%SystemRoot%\\explorer.exe"), IDS_CMT_EXPLORER, TRUE); CreateShortcut(CSIDL_PROGRAMS, NULL, IDS_SHORT_EXPLORER, _T("%SystemRoot%\\explorer.exe"), IDS_CMT_EXPLORER, TRUE);

View File

@@ -485,8 +485,8 @@ static BOOL create_icon_bitmaps( const BITMAPINFO *bmi, int width, int height,
else else
{ {
if (!(*mask = CreateBitmap( width, height, 1, 1, NULL ))) goto done; if (!(*mask = CreateBitmap( width, height, 1, 1, NULL ))) goto done;
if (!(*color = CreateBitmap( width, height, bmi->bmiHeader.biPlanes, if (!(*color = CreateBitmap( width, height, GetDeviceCaps( screen_dc, PLANES ),
bmi->bmiHeader.biBitCount, NULL ))) GetDeviceCaps( screen_dc, BITSPIXEL ), NULL )))
{ {
DeleteObject( *mask ); DeleteObject( *mask );
goto done; goto done;

View File

@@ -1176,7 +1176,7 @@ static DWORD FTPFILE_QueryOption(object_header_t *hdr, DWORD option, void *buffe
} }
} }
} }
return INET_QueryOption(hdr, option, buffer, size, unicode); return INET_QueryOption(option, buffer, size, unicode);
} }
static DWORD FTPFILE_ReadFile(object_header_t *hdr, void *buffer, DWORD size, DWORD *read) static DWORD FTPFILE_ReadFile(object_header_t *hdr, void *buffer, DWORD size, DWORD *read)
@@ -2395,7 +2395,7 @@ static DWORD FTPSESSION_QueryOption(object_header_t *hdr, DWORD option, void *bu
return ERROR_SUCCESS; return ERROR_SUCCESS;
} }
return INET_QueryOption(hdr, option, buffer, size, unicode); return INET_QueryOption(option, buffer, size, unicode);
} }
static const object_vtbl_t FTPSESSIONVtbl = { static const object_vtbl_t FTPSESSIONVtbl = {
@@ -3476,7 +3476,7 @@ static DWORD FTPFINDNEXT_QueryOption(object_header_t *hdr, DWORD option, void *b
return ERROR_SUCCESS; return ERROR_SUCCESS;
} }
return INET_QueryOption(hdr, option, buffer, size, unicode); return INET_QueryOption(option, buffer, size, unicode);
} }
static DWORD FTPFINDNEXT_FindNextFileW(object_header_t *hdr, void *data) static DWORD FTPFINDNEXT_FindNextFileW(object_header_t *hdr, void *data)

View File

@@ -1756,7 +1756,7 @@ static DWORD HTTPREQ_QueryOption(object_header_t *hdr, DWORD option, void *buffe
} }
} }
return INET_QueryOption(hdr, option, buffer, size, unicode); return INET_QueryOption(option, buffer, size, unicode);
} }
static DWORD HTTPREQ_SetOption(object_header_t *hdr, DWORD option, void *buffer, DWORD size) static DWORD HTTPREQ_SetOption(object_header_t *hdr, DWORD option, void *buffer, DWORD size)
@@ -3464,10 +3464,6 @@ static DWORD HTTP_HttpSendRequestW(http_request_t *lpwhr, LPCWSTR lpszHeaders,
* for all the data */ * for all the data */
HTTP_DrainContent(lpwhr); HTTP_DrainContent(lpwhr);
lpwhr->dwContentRead = 0; lpwhr->dwContentRead = 0;
if(redirected) {
lpwhr->dwContentLength = ~0u;
lpwhr->dwBytesToWrite = 0;
}
if (TRACE_ON(wininet)) if (TRACE_ON(wininet))
{ {
@@ -3674,7 +3670,7 @@ lend:
HTTP_ReceiveRequestData(lpwhr, TRUE); HTTP_ReceiveRequestData(lpwhr, TRUE);
else else
{ {
iar.dwResult = 0; iar.dwResult = (DWORD_PTR)lpwhr->hdr.hInternet;
iar.dwError = res; iar.dwError = res;
INTERNET_SendCallback(&lpwhr->hdr, lpwhr->hdr.dwContext, INTERNET_SendCallback(&lpwhr->hdr, lpwhr->hdr.dwContext,
@@ -4168,7 +4164,7 @@ static DWORD HTTPSESSION_QueryOption(object_header_t *hdr, DWORD option, void *b
return ERROR_SUCCESS; return ERROR_SUCCESS;
} }
return INET_QueryOption(hdr, option, buffer, size, unicode); return INET_QueryOption(option, buffer, size, unicode);
} }
static DWORD HTTPSESSION_SetOption(object_header_t *hdr, DWORD option, void *buffer, DWORD size) static DWORD HTTPSESSION_SetOption(object_header_t *hdr, DWORD option, void *buffer, DWORD size)
@@ -4265,8 +4261,11 @@ DWORD HTTP_Connect(appinfo_t *hIC, LPCWSTR lpszServerName,
if(hIC->lpszProxyBypass) if(hIC->lpszProxyBypass)
FIXME("Proxy bypass is ignored.\n"); FIXME("Proxy bypass is ignored.\n");
} }
lpwhs->lpszServerName = heap_strdupW(lpszServerName); if (lpszServerName && lpszServerName[0])
lpwhs->lpszHostName = heap_strdupW(lpszServerName); {
lpwhs->lpszServerName = heap_strdupW(lpszServerName);
lpwhs->lpszHostName = heap_strdupW(lpszServerName);
}
if (lpszUserName && lpszUserName[0]) if (lpszUserName && lpszUserName[0])
lpwhs->lpszUserName = heap_strdupW(lpszUserName); lpwhs->lpszUserName = heap_strdupW(lpszUserName);
if (lpszPassword && lpszPassword[0]) if (lpszPassword && lpszPassword[0])
@@ -4363,10 +4362,6 @@ static DWORD HTTP_OpenConnection(http_request_t *lpwhr)
if(res != ERROR_SUCCESS) if(res != ERROR_SUCCESS)
goto lend; goto lend;
INTERNET_SendCallback(&lpwhr->hdr, lpwhr->hdr.dwContext,
INTERNET_STATUS_CONNECTED_TO_SERVER,
szaddr, strlen(szaddr)+1);
if (lpwhr->hdr.dwFlags & INTERNET_FLAG_SECURE) if (lpwhr->hdr.dwFlags & INTERNET_FLAG_SECURE)
{ {
/* Note: we differ from Microsoft's WinINet here. they seem to have /* Note: we differ from Microsoft's WinINet here. they seem to have
@@ -4375,31 +4370,20 @@ static DWORD HTTP_OpenConnection(http_request_t *lpwhr)
* behaviour to be more correct and to not cause any incompatibilities * behaviour to be more correct and to not cause any incompatibilities
* because using a secure connection through a proxy server is a rare * because using a secure connection through a proxy server is a rare
* case that would be hard for anyone to depend on */ * case that would be hard for anyone to depend on */
if (hIC->lpszProxy && (res = HTTP_SecureProxyConnect(lpwhr)) != ERROR_SUCCESS) { if (hIC->lpszProxy && (res = HTTP_SecureProxyConnect(lpwhr)) != ERROR_SUCCESS)
HTTPREQ_CloseConnection(&lpwhr->hdr);
goto lend; goto lend;
}
res = NETCON_secure_connect(&lpwhr->netConnection, lpwhs->lpszHostName); res = NETCON_secure_connect(&lpwhr->netConnection, lpwhs->lpszHostName);
if(res != ERROR_SUCCESS) if(res != ERROR_SUCCESS)
{ {
WARN("Couldn't connect securely to host\n"); WARN("Couldn't connect securely to host\n");
if((lpwhr->hdr.ErrorMask&INTERNET_ERROR_MASK_COMBINED_SEC_CERT) && (
res == ERROR_INTERNET_SEC_CERT_DATE_INVALID
|| res == ERROR_INTERNET_INVALID_CA
|| res == ERROR_INTERNET_SEC_CERT_NO_REV
|| res == ERROR_INTERNET_SEC_CERT_REV_FAILED
|| res == ERROR_INTERNET_SEC_CERT_REVOKED
|| res == ERROR_INTERNET_SEC_INVALID_CERT
|| res == ERROR_INTERNET_SEC_CERT_CN_INVALID))
res = ERROR_INTERNET_SEC_CERT_ERRORS;
HTTPREQ_CloseConnection(&lpwhr->hdr);
goto lend; goto lend;
} }
} }
INTERNET_SendCallback(&lpwhr->hdr, lpwhr->hdr.dwContext,
INTERNET_STATUS_CONNECTED_TO_SERVER,
szaddr, strlen(szaddr)+1);
lend: lend:
lpwhr->read_pos = lpwhr->read_size = 0; lpwhr->read_pos = lpwhr->read_size = 0;

View File

@@ -812,7 +812,7 @@ static DWORD APPINFO_QueryOption(object_header_t *hdr, DWORD option, void *buffe
} }
} }
return INET_QueryOption(hdr, option, buffer, size, unicode); return INET_QueryOption(option, buffer, size, unicode);
} }
static const object_vtbl_t APPINFOVtbl = { static const object_vtbl_t APPINFOVtbl = {
@@ -1447,7 +1447,7 @@ BOOL WINAPI InternetCrackUrlA(LPCSTR lpszUrl, DWORD dwUrlLength, DWORD dwFlags,
lpUrlComponents->nScheme = UCW.nScheme; lpUrlComponents->nScheme = UCW.nScheme;
lpUrlComponents->nPort = UCW.nPort; lpUrlComponents->nPort = UCW.nPort;
TRACE("%s: scheme(%s) host(%s) path(%s) extra(%s)\n", debugstr_a(lpszUrl), TRACE("%s: scheme(%s) host(%s) path(%s) extra(%s)\n", lpszUrl,
debugstr_an(lpUrlComponents->lpszScheme, lpUrlComponents->dwSchemeLength), debugstr_an(lpUrlComponents->lpszScheme, lpUrlComponents->dwSchemeLength),
debugstr_an(lpUrlComponents->lpszHostName, lpUrlComponents->dwHostNameLength), debugstr_an(lpUrlComponents->lpszHostName, lpUrlComponents->dwHostNameLength),
debugstr_an(lpUrlComponents->lpszUrlPath, lpUrlComponents->dwUrlPathLength), debugstr_an(lpUrlComponents->lpszUrlPath, lpUrlComponents->dwUrlPathLength),
@@ -1860,7 +1860,7 @@ BOOL WINAPI InternetCanonicalizeUrlA(LPCSTR lpszUrl, LPSTR lpszBuffer,
DWORD dwURLFlags = URL_WININET_COMPATIBILITY | URL_ESCAPE_UNSAFE; DWORD dwURLFlags = URL_WININET_COMPATIBILITY | URL_ESCAPE_UNSAFE;
TRACE("(%s, %p, %p, 0x%08x) bufferlength: %d\n", debugstr_a(lpszUrl), lpszBuffer, TRACE("(%s, %p, %p, 0x%08x) bufferlength: %d\n", debugstr_a(lpszUrl), lpszBuffer,
lpdwBufferLength, dwFlags, lpdwBufferLength ? *lpdwBufferLength : -1); lpdwBufferLength, lpdwBufferLength ? *lpdwBufferLength : -1, dwFlags);
if(dwFlags & ICU_DECODE) if(dwFlags & ICU_DECODE)
{ {
@@ -2194,7 +2194,7 @@ BOOL WINAPI InternetReadFileExW(HINTERNET hFile, LPINTERNET_BUFFERSW lpBuffer,
return res == ERROR_SUCCESS; return res == ERROR_SUCCESS;
} }
DWORD INET_QueryOption(object_header_t *hdr, DWORD option, void *buffer, DWORD *size, BOOL unicode) DWORD INET_QueryOption(DWORD option, void *buffer, DWORD *size, BOOL unicode)
{ {
static BOOL warn = TRUE; static BOOL warn = TRUE;
@@ -2357,25 +2357,6 @@ DWORD INET_QueryOption(object_header_t *hdr, DWORD option, void *buffer, DWORD *
return ERROR_INTERNET_INCORRECT_HANDLE_TYPE; return ERROR_INTERNET_INCORRECT_HANDLE_TYPE;
case INTERNET_OPTION_POLICY: case INTERNET_OPTION_POLICY:
return ERROR_INVALID_PARAMETER; return ERROR_INVALID_PARAMETER;
case INTERNET_OPTION_CONTEXT_VALUE:
{
if (!hdr)
return ERROR_INTERNET_INCORRECT_HANDLE_TYPE;
if (!size)
return ERROR_INVALID_PARAMETER;
if (*size < sizeof(DWORD_PTR))
{
*size = sizeof(DWORD_PTR);
return ERROR_INSUFFICIENT_BUFFER;
}
if (!buffer)
return ERROR_INVALID_PARAMETER;
*(DWORD_PTR *)buffer = hdr->dwContext;
*size = sizeof(DWORD_PTR);
return ERROR_SUCCESS;
}
} }
FIXME("Stub for %d\n", option); FIXME("Stub for %d\n", option);
@@ -2407,7 +2388,7 @@ BOOL WINAPI InternetQueryOptionW(HINTERNET hInternet, DWORD dwOption,
WININET_Release(hdr); WININET_Release(hdr);
} }
}else { }else {
res = INET_QueryOption(NULL, dwOption, lpBuffer, lpdwBufferLength, TRUE); res = INET_QueryOption(dwOption, lpBuffer, lpdwBufferLength, TRUE);
} }
if(res != ERROR_SUCCESS) if(res != ERROR_SUCCESS)
@@ -2440,7 +2421,7 @@ BOOL WINAPI InternetQueryOptionA(HINTERNET hInternet, DWORD dwOption,
WININET_Release(hdr); WININET_Release(hdr);
} }
}else { }else {
res = INET_QueryOption(NULL, dwOption, lpBuffer, lpdwBufferLength, FALSE); res = INET_QueryOption(dwOption, lpBuffer, lpdwBufferLength, FALSE);
} }
if(res != ERROR_SUCCESS) if(res != ERROR_SUCCESS)
@@ -2503,19 +2484,8 @@ BOOL WINAPI InternetSetOptionW(HINTERNET hInternet, DWORD dwOption,
break; break;
case INTERNET_OPTION_ERROR_MASK: case INTERNET_OPTION_ERROR_MASK:
{ {
if(!lpwhh) { ULONG flags = *(ULONG *)lpBuffer;
SetLastError(ERROR_INTERNET_INCORRECT_HANDLE_TYPE); FIXME("Option INTERNET_OPTION_ERROR_MASK(%d): STUB\n", flags);
return FALSE;
} else if(*(ULONG*)lpBuffer & (~(INTERNET_ERROR_MASK_INSERT_CDROM|
INTERNET_ERROR_MASK_COMBINED_SEC_CERT|
INTERNET_ERROR_MASK_LOGIN_FAILURE_DISPLAY_ENTITY_BODY))) {
SetLastError(ERROR_INVALID_PARAMETER);
ret = FALSE;
} else if(dwBufferLength != sizeof(ULONG)) {
SetLastError(ERROR_INTERNET_BAD_OPTION_LENGTH);
ret = FALSE;
} else
lpwhh->ErrorMask = *(ULONG*)lpBuffer;
} }
break; break;
case INTERNET_OPTION_CODEPAGE: case INTERNET_OPTION_CODEPAGE:
@@ -2580,21 +2550,8 @@ BOOL WINAPI InternetSetOptionW(HINTERNET hInternet, DWORD dwOption,
break; break;
} }
case INTERNET_OPTION_CONTEXT_VALUE: case INTERNET_OPTION_CONTEXT_VALUE:
{ FIXME("Option INTERNET_OPTION_CONTEXT_VALUE; STUB\n");
if (!lpwhh) break;
{
SetLastError(ERROR_INTERNET_INCORRECT_HANDLE_TYPE);
return FALSE;
}
if (!lpBuffer || dwBufferLength != sizeof(DWORD_PTR))
{
SetLastError(ERROR_INVALID_PARAMETER);
ret = FALSE;
}
else
lpwhh->dwContext = *(DWORD_PTR *)lpBuffer;
break;
}
case INTERNET_OPTION_SECURITY_FLAGS: case INTERNET_OPTION_SECURITY_FLAGS:
FIXME("Option INTERNET_OPTION_SECURITY_FLAGS; STUB\n"); FIXME("Option INTERNET_OPTION_SECURITY_FLAGS; STUB\n");
break; break;

View File

@@ -160,7 +160,6 @@ struct _object_header_t
DWORD dwFlags; DWORD dwFlags;
DWORD_PTR dwContext; DWORD_PTR dwContext;
DWORD dwError; DWORD dwError;
ULONG ErrorMask;
DWORD dwInternalFlags; DWORD dwInternalFlags;
LONG refs; LONG refs;
INTERNET_STATUS_CALLBACK lpfnStatusCB; INTERNET_STATUS_CALLBACK lpfnStatusCB;
@@ -393,7 +392,7 @@ object_header_t *WININET_AddRef( object_header_t *info );
BOOL WININET_Release( object_header_t *info ); BOOL WININET_Release( object_header_t *info );
BOOL WININET_FreeHandle( HINTERNET hinternet ); BOOL WININET_FreeHandle( HINTERNET hinternet );
DWORD INET_QueryOption( object_header_t *, DWORD, void *, DWORD *, BOOL ); DWORD INET_QueryOption(DWORD,void*,DWORD*,BOOL);
time_t ConvertTimeString(LPCWSTR asctime); time_t ConvertTimeString(LPCWSTR asctime);

View File

@@ -134,7 +134,6 @@ MAKE_FUNCPTR(SSL_shutdown);
MAKE_FUNCPTR(SSL_write); MAKE_FUNCPTR(SSL_write);
MAKE_FUNCPTR(SSL_read); MAKE_FUNCPTR(SSL_read);
MAKE_FUNCPTR(SSL_pending); MAKE_FUNCPTR(SSL_pending);
MAKE_FUNCPTR(SSL_get_error);
MAKE_FUNCPTR(SSL_get_ex_new_index); MAKE_FUNCPTR(SSL_get_ex_new_index);
MAKE_FUNCPTR(SSL_get_ex_data); MAKE_FUNCPTR(SSL_get_ex_data);
MAKE_FUNCPTR(SSL_set_ex_data); MAKE_FUNCPTR(SSL_set_ex_data);
@@ -331,9 +330,7 @@ static int netconn_secure_verify(int preverify_ok, X509_STORE_CTX *ctx)
CertFreeCertificateContext(endCert); CertFreeCertificateContext(endCert);
CertCloseStore(store, 0); CertCloseStore(store, 0);
} }
} else }
pSSL_set_ex_data(ssl, error_idx, (void *)ERROR_INTERNET_SEC_CERT_ERRORS);
return ret; return ret;
} }
@@ -395,7 +392,6 @@ DWORD NETCON_init(WININET_NETCONNECTION *connection, BOOL useSSL)
DYNSSL(SSL_write); DYNSSL(SSL_write);
DYNSSL(SSL_read); DYNSSL(SSL_read);
DYNSSL(SSL_pending); DYNSSL(SSL_pending);
DYNSSL(SSL_get_error);
DYNSSL(SSL_get_ex_new_index); DYNSSL(SSL_get_ex_new_index);
DYNSSL(SSL_get_ex_data); DYNSSL(SSL_get_ex_data);
DYNSSL(SSL_set_ex_data); DYNSSL(SSL_set_ex_data);
@@ -776,12 +772,6 @@ DWORD NETCON_recv(WININET_NETCONNECTION *connection, void *buf, size_t len, int
{ {
#ifdef SONAME_LIBSSL #ifdef SONAME_LIBSSL
*recvd = pSSL_read(connection->ssl_s, buf, len); *recvd = pSSL_read(connection->ssl_s, buf, len);
/* Check if EOF was received */
if(!*recvd && (pSSL_get_error(connection->ssl_s, *recvd)==SSL_ERROR_ZERO_RETURN
|| pSSL_get_error(connection->ssl_s, *recvd)==SSL_ERROR_SYSCALL))
return ERROR_SUCCESS;
return *recvd > 0 ? ERROR_SUCCESS : ERROR_INTERNET_CONNECTION_ABORTED; return *recvd > 0 ? ERROR_SUCCESS : ERROR_INTERNET_CONNECTION_ABORTED;
#else #else
return ERROR_NOT_SUPPORTED; return ERROR_NOT_SUPPORTED;

View File

@@ -2435,6 +2435,7 @@ static BOOL CommitUrlCacheEntryInternal(
DWORD dwFileSizeLow = 0; DWORD dwFileSizeLow = 0;
DWORD dwFileSizeHigh = 0; DWORD dwFileSizeHigh = 0;
BYTE cDirectory = 0; BYTE cDirectory = 0;
int len;
char achFile[MAX_PATH]; char achFile[MAX_PATH];
LPSTR lpszUrlNameA = NULL; LPSTR lpszUrlNameA = NULL;
LPSTR lpszFileExtensionA = NULL; LPSTR lpszFileExtensionA = NULL;
@@ -2555,6 +2556,7 @@ static BOOL CommitUrlCacheEntryInternal(
dwBytesNeeded = DWORD_ALIGN(dwBytesNeeded + strlen(lpszUrlNameA) + 1); dwBytesNeeded = DWORD_ALIGN(dwBytesNeeded + strlen(lpszUrlNameA) + 1);
if (lpszLocalFileName) if (lpszLocalFileName)
{ {
len = WideCharToMultiByte(CP_ACP, 0, lpszUrlName, -1, NULL, 0, NULL, NULL);
dwOffsetLocalFileName = dwBytesNeeded; dwOffsetLocalFileName = dwBytesNeeded;
dwBytesNeeded = DWORD_ALIGN(dwBytesNeeded + strlen(pchLocalFileName) + 1); dwBytesNeeded = DWORD_ALIGN(dwBytesNeeded + strlen(pchLocalFileName) + 1);
} }

View File

@@ -307,7 +307,6 @@ VOID INTERNET_SendCallback(object_header_t *hdr, DWORD_PTR dwContext,
case INTERNET_STATUS_CONNECTING_TO_SERVER: case INTERNET_STATUS_CONNECTING_TO_SERVER:
case INTERNET_STATUS_CONNECTED_TO_SERVER: case INTERNET_STATUS_CONNECTED_TO_SERVER:
lpvNewInfo = heap_strdupAtoW(lpvStatusInfo); lpvNewInfo = heap_strdupAtoW(lpvStatusInfo);
dwStatusInfoLength *= sizeof(WCHAR);
break; break;
case INTERNET_STATUS_RESOLVING_NAME: case INTERNET_STATUS_RESOLVING_NAME:
case INTERNET_STATUS_REDIRECT: case INTERNET_STATUS_REDIRECT:
@@ -326,7 +325,6 @@ VOID INTERNET_SendCallback(object_header_t *hdr, DWORD_PTR dwContext,
case INTERNET_STATUS_RESOLVING_NAME: case INTERNET_STATUS_RESOLVING_NAME:
case INTERNET_STATUS_REDIRECT: case INTERNET_STATUS_REDIRECT:
lpvNewInfo = heap_strdupWtoA(lpvStatusInfo); lpvNewInfo = heap_strdupWtoA(lpvStatusInfo);
dwStatusInfoLength /= sizeof(WCHAR);
break; break;
} }
} }

View File

@@ -6,7 +6,6 @@
<importlibrary definition="wininet.spec" /> <importlibrary definition="wininet.spec" />
<include base="wininet">.</include> <include base="wininet">.</include>
<include base="ReactOS">include/reactos/wine</include> <include base="ReactOS">include/reactos/wine</include>
<include base="zlib">.</include>
<define name="__WINESRC__" /> <define name="__WINESRC__" />
<define name="_WINE" /> <define name="_WINE" />
@@ -23,7 +22,6 @@
<library>secur32</library> <library>secur32</library>
<library>crypt32</library> <library>crypt32</library>
<library>ws2_32</library> <library>ws2_32</library>
<library>zlib</library>
<library>pseh</library> <library>pseh</library>
<file>cookie.c</file> <file>cookie.c</file>
<file>dialogs.c</file> <file>dialogs.c</file>

View File

@@ -145,7 +145,7 @@ NdisMCancelTimer(
* - call at IRQL <= DISPATCH_LEVEL * - call at IRQL <= DISPATCH_LEVEL
*/ */
{ {
KIRQL OldIrql; //KIRQL OldIrql;
ASSERT_IRQL(DISPATCH_LEVEL); ASSERT_IRQL(DISPATCH_LEVEL);
ASSERT(TimerCancelled); ASSERT(TimerCancelled);
@@ -153,6 +153,7 @@ NdisMCancelTimer(
*TimerCancelled = KeCancelTimer (&Timer->Timer); *TimerCancelled = KeCancelTimer (&Timer->Timer);
#if 0
if (*TimerCancelled) if (*TimerCancelled)
{ {
KeAcquireSpinLock(&Timer->Miniport->Lock, &OldIrql); KeAcquireSpinLock(&Timer->Miniport->Lock, &OldIrql);
@@ -160,6 +161,7 @@ NdisMCancelTimer(
if (!DequeueMiniportTimer(Timer)) ASSERT(FALSE); if (!DequeueMiniportTimer(Timer)) ASSERT(FALSE);
KeReleaseSpinLock(&Timer->Miniport->Lock, OldIrql); KeReleaseSpinLock(&Timer->Miniport->Lock, OldIrql);
} }
#endif
} }
VOID NTAPI VOID NTAPI
@@ -170,6 +172,7 @@ MiniTimerDpcFunction(PKDPC Dpc,
{ {
PNDIS_MINIPORT_TIMER Timer = DeferredContext; PNDIS_MINIPORT_TIMER Timer = DeferredContext;
#if 0
/* Only dequeue if the timer has a period of 0 */ /* Only dequeue if the timer has a period of 0 */
if (!Timer->Timer.Period) if (!Timer->Timer.Period)
{ {
@@ -178,6 +181,7 @@ MiniTimerDpcFunction(PKDPC Dpc,
if (!DequeueMiniportTimer(Timer)) ASSERT(FALSE); if (!DequeueMiniportTimer(Timer)) ASSERT(FALSE);
KeReleaseSpinLockFromDpcLevel(&Timer->Miniport->Lock); KeReleaseSpinLockFromDpcLevel(&Timer->Miniport->Lock);
} }
#endif
Timer->MiniportTimerFunction(Dpc, Timer->MiniportTimerFunction(Dpc,
Timer->MiniportTimerContext, Timer->MiniportTimerContext,
@@ -240,14 +244,15 @@ NdisMSetPeriodicTimer(
*/ */
{ {
LARGE_INTEGER Timeout; LARGE_INTEGER Timeout;
KIRQL OldIrql; //KIRQL OldIrql;
ASSERT_IRQL(DISPATCH_LEVEL); ASSERT_IRQL(DISPATCH_LEVEL);
ASSERT(Timer); ASSERT(Timer);
/* relative delays are negative, absolute are positive; resolution is 100ns */ /* relative delays are negative, absolute are positive; resolution is 100ns */
Timeout.QuadPart = Int32x32To64(MillisecondsPeriod, -10000); Timeout.QuadPart = Int32x32To64(MillisecondsPeriod, -10000);
#if 0
/* Lock the miniport block */ /* Lock the miniport block */
KeAcquireSpinLock(&Timer->Miniport->Lock, &OldIrql); KeAcquireSpinLock(&Timer->Miniport->Lock, &OldIrql);
@@ -260,6 +265,7 @@ NdisMSetPeriodicTimer(
/* Unlock the miniport block */ /* Unlock the miniport block */
KeReleaseSpinLock(&Timer->Miniport->Lock, OldIrql); KeReleaseSpinLock(&Timer->Miniport->Lock, OldIrql);
#endif
KeSetTimerEx(&Timer->Timer, Timeout, MillisecondsPeriod, &Timer->Dpc); KeSetTimerEx(&Timer->Timer, Timeout, MillisecondsPeriod, &Timer->Dpc);
} }
@@ -285,7 +291,7 @@ NdisMSetTimer(
*/ */
{ {
LARGE_INTEGER Timeout; LARGE_INTEGER Timeout;
KIRQL OldIrql; //KIRQL OldIrql;
ASSERT_IRQL(DISPATCH_LEVEL); ASSERT_IRQL(DISPATCH_LEVEL);
ASSERT(Timer); ASSERT(Timer);
@@ -293,6 +299,7 @@ NdisMSetTimer(
/* relative delays are negative, absolute are positive; resolution is 100ns */ /* relative delays are negative, absolute are positive; resolution is 100ns */
Timeout.QuadPart = Int32x32To64(MillisecondsToDelay, -10000); Timeout.QuadPart = Int32x32To64(MillisecondsToDelay, -10000);
#if 0
/* Lock the miniport block */ /* Lock the miniport block */
KeAcquireSpinLock(&Timer->Miniport->Lock, &OldIrql); KeAcquireSpinLock(&Timer->Miniport->Lock, &OldIrql);
@@ -305,6 +312,7 @@ NdisMSetTimer(
/* Unlock the miniport block */ /* Unlock the miniport block */
KeReleaseSpinLock(&Timer->Miniport->Lock, OldIrql); KeReleaseSpinLock(&Timer->Miniport->Lock, OldIrql);
#endif
KeSetTimer(&Timer->Timer, Timeout, &Timer->Dpc); KeSetTimer(&Timer->Timer, Timeout, &Timer->Dpc);
} }

View File

@@ -122,9 +122,6 @@ INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP)
) )
#define INTERNET_ERROR_MASK_INSERT_CDROM 0x1 #define INTERNET_ERROR_MASK_INSERT_CDROM 0x1
#define INTERNET_ERROR_MASK_COMBINED_SEC_CERT 0x2
#define INTERNET_ERROR_MASK_NEED_MSN_SSPI_PKG 0x4
#define INTERNET_ERROR_MASK_LOGIN_FAILURE_DISPLAY_ENTITY_BODY 0x8
#define INTERNET_OPTIONS_MASK (~INTERNET_FLAGS_MASK) #define INTERNET_OPTIONS_MASK (~INTERNET_FLAGS_MASK)
#define WININET_API_FLAG_ASYNC 0x00000001 #define WININET_API_FLAG_ASYNC 0x00000001

View File

@@ -18,13 +18,13 @@
#define __VERSION_H #define __VERSION_H
#define KERNEL_VERSION_MAJOR 0 #define KERNEL_VERSION_MAJOR 0
#define KERNEL_VERSION_MINOR 4 #define KERNEL_VERSION_MINOR 3
#define KERNEL_VERSION_PATCH_LEVEL 0 #define KERNEL_VERSION_PATCH_LEVEL 12
#define COPYRIGHT_YEAR "2010" #define COPYRIGHT_YEAR "2010"
/* KERNEL_VERSION_BUILD_TYPE is L"SVN", L"RC1", L"RC2" or L"" (for the release) */ /* KERNEL_VERSION_BUILD_TYPE is L"SVN", L"RC1", L"RC2" or L"" (for the release) */
#define KERNEL_VERSION_BUILD_TYPE L"SVN" #define KERNEL_VERSION_BUILD_TYPE L""
#endif #endif

View File

@@ -457,12 +457,6 @@
/* Define to 1 if you have the <openssl/ssl.h> header file. */ /* Define to 1 if you have the <openssl/ssl.h> header file. */
/* #undef HAVE_OPENSSL_SSL_H */ /* #undef HAVE_OPENSSL_SSL_H */
/* Define to 1 if you have the `z' library (-lz). */
#define HAVE_ZLIB 1
/* Define to 1 if you have the <zlib.h> header file. */
#define HAVE_ZLIB_H 1
/* Define to 1 if you have the `pclose' function. */ /* Define to 1 if you have the `pclose' function. */
#define HAVE_PCLOSE 1 #define HAVE_PCLOSE 1

View File

@@ -1431,8 +1431,8 @@ KeBugCheckEx(IN ULONG BugCheckCode,
IN ULONG_PTR BugCheckParameter4) IN ULONG_PTR BugCheckParameter4)
{ {
/* Workaround for Windows Server 2003 Checked PCI Driver issue */ /* Workaround for Windows Server 2003 Checked PCI Driver issue */
if (!(BugCheckCode == PCI_BUS_DRIVER_INTERNAL) && if (!((BugCheckCode == PCI_BUS_DRIVER_INTERNAL) &&
(BugCheckParameter1 == 0xDEAD0010)) (BugCheckParameter1 == 0xDEAD0010)))
{ {
/* Call the internal API */ /* Call the internal API */
KeBugCheckWithTf(BugCheckCode, KeBugCheckWithTf(BugCheckCode,

View File

@@ -486,6 +486,12 @@ IntPrepareDriver(VOID)
RtlZeroMemory( PrimarySurface.pEDDgpl ,sizeof(EDD_DIRECTDRAW_GLOBAL)); RtlZeroMemory( PrimarySurface.pEDDgpl ,sizeof(EDD_DIRECTDRAW_GLOBAL));
ret = TRUE; ret = TRUE;
} }
gpsi->aiSysMet[SM_CXSCREEN] = PrimarySurface.gdiinfo.ulHorzRes;
gpsi->aiSysMet[SM_CYSCREEN] = PrimarySurface.gdiinfo.ulVertRes;
gpsi->aiSysMet[SM_CXVIRTUALSCREEN] = PrimarySurface.gdiinfo.ulHorzRes;
gpsi->aiSysMet[SM_CYVIRTUALSCREEN] = PrimarySurface.gdiinfo.ulVertRes;
goto cleanup; goto cleanup;
} }