RE: ADVAPI32: Start test for service tests

2007-05-21 Thread Rolf Kalbermatter
James Hawkins [mailto:[EMAIL PROTECTED] wrote:

+ok(size = 1, size should be = 1 was %d!, size);

This is a bad test.  According to msdn, GetServiceDisplayName does not
modify lpcchBuffer on error, so size should be exactly 0.

MSDN says a lot of things. On my XP SP2 it returns 1 as size when passed
an empty service name. Also failing here is a bit ambigeuos since the
dunction also fails when a NULL pointer is passed or the buffer is to
small, but it does change the size into what it expects in these two
cases.

+static BOOL test_service_info(SC_HANDLE hscm)

test functions are void, not BOOL.  You're never going to do anything but
return, and there's no value to check by the caller.

I took this more or less directly from registry.c in the same directory.

+ok(size, size should be returned!);

And what is the size?  Tests are supposed to be exact.  If our
implementation
is incorrect, and we return size as 39491, that's certainly not correct,
but
this test won't fail when it should.

This won't work for localized Windows versions. The display name is possibly
translated. Also, on XP SP2 the A function returns the size in ASCI chars
that
the W function will need in bytes. Not a behaviour I feel Wine should
imitate
without an app that would need that behaviour.

I'll be gone for two weeks for vacation. If anyone wants to continue on that
please feel free. Otherwise I'll be picking this up afterwards.

Rolf Kalbermatter





Re: shlwapi: stub implementation for SHSetTimerQueueTimer (try 2)

2007-05-21 Thread Dmitry Timoshkov

Nigel Liang [EMAIL PROTECTED] wrote:


+HANDLE WINAPI SHSetTimerQueueTimer(HANDLE hQueue,
+WAITORTIMERCALLBACK pfnCallback, LPVOID pContext, DWORD dwDueTime,
+DWORD dwPeriod, LPCSTR lpszLibrary, DWORD dwFlags)
+{

...

+return CreateTimerQueueTimer(hNewTimer, hQueue, pfnCallback, pContext,
+dwDueTime, dwPeriod, dwFlags)?hNewTimer:NULL;


This can't work: CreateTimerQueueTimer and SHSetTimerQueueTimer
return different things.

--
Dmitry.




Re: localui/tests: Add tests for ConfigurePortUI

2007-05-21 Thread Alexandre Julliard
Detlef Riekenberg [EMAIL PROTECTED] writes:

 diff --git a/dlls/localui/tests/Makefile.in b/dlls/localui/tests/Makefile.in
 index 191a312..634060b 100644
 --- a/dlls/localui/tests/Makefile.in
 +++ b/dlls/localui/tests/Makefile.in
 @@ -3,7 +3,7 @@ TOPOBJDIR = ../../..
  SRCDIR= @srcdir@
  VPATH = @srcdir@
  TESTDLL   = localui.dll
 -IMPORTS   = kernel32
 +IMPORTS   = kernel32 msvcrt winspool

You can't import msvcrt without using the headers and the appropriate
compiler flags. It would be much better to avoid it though.

-- 
Alexandre Julliard
[EMAIL PROTECTED]




Re: review: add Video Memory text input to winecfg Graphics/Direct3D tab

2007-05-21 Thread Vit Hrachovy
On Wed, May 16, 2007 at 06:41:33PM +0200, Frank Richter wrote:
  just add all
  preset memory sizes, and WM_SETTEXT the value read from the registry.
 
 Might be code-wise a bit simpler than your GETCURSEL approach, but
 otherswise not much different I think.
 
 -f.r.

Hi Frank,
I've simplified the code according Your review, see the attached patch.
Thanks for help.
Vit
diff --git a/programs/winecfg/Bg.rc b/programs/winecfg/Bg.rc
index 302bec5..a2580a3 100644
--- a/programs/winecfg/Bg.rc
+++ b/programs/winecfg/Bg.rc
@@ -90,6 +90,8 @@ BEGIN
 COMBOBOX   IDC_D3D_VSHADER_MODE,115,218,125,70,CBS_DROPDOWNLIST | 
WS_VSCROLL | WS_TABSTOP
 
 CONTROL Đŕçđĺřč Pixel Shader (ŕęî ńĺ ďîääúđćŕ îň 
őŕđäóĺđŕ),IDC_D3D_PSHADER_MODE,Button,BS_AUTOCHECKBOX | 
WS_TABSTOP,15,237,230,10
+LTEXT   Video Memory Size (in 
megabytes):,IDC_STATIC,15,232,120,12
+COMBOBOXIDC_VIDEOMEMORY_SIZE_COMBO,130,232,40,112,CBS_DROPDOWN | 
WS_VSCROLL | WS_TABSTOP | CBS_LOWERCASE
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
diff --git a/programs/winecfg/Cs.rc b/programs/winecfg/Cs.rc
index 5bba698..07ba100 100644
--- a/programs/winecfg/Cs.rc
+++ b/programs/winecfg/Cs.rc
@@ -88,6 +88,8 @@ BEGIN
 COMBOBOX   IDC_D3D_VSHADER_MODE,105,197,140,70,CBS_DROPDOWNLIST | 
WS_VSCROLL | WS_TABSTOP
 
 CONTROL Povolit stínování pixelů (spoléhá se na hardware 
podporu),IDC_D3D_PSHADER_MODE,Button,BS_AUTOCHECKBOX | 
WS_TABSTOP,15,216,230,10
+LTEXT   Velikost videopaměti (v 
megabytech):,IDC_STATIC,15,232,140,12
+COMBOBOXIDC_VIDEOMEMORY_SIZE_COMBO,145,232,40,112,CBS_DROPDOWN | 
WS_VSCROLL | WS_TABSTOP | CBS_LOWERCASE
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
@@ -244,8 +246,8 @@ END
 
 STRINGTABLE DISCARDABLE
 BEGIN
-IDS_SHADER_MODE_HARDWAREHardwarový
-IDS_SHADER_MODE_NONEŽádný
+IDS_SHADER_MODE_HARDWAREPodporováno zařízením
+IDS_SHADER_MODE_NONEŽádná
 END
 
 STRINGTABLE DISCARDABLE
diff --git a/programs/winecfg/De.rc b/programs/winecfg/De.rc
index 8c77b2b..9741a48 100644
--- a/programs/winecfg/De.rc
+++ b/programs/winecfg/De.rc
@@ -84,6 +84,8 @@ BEGIN
 COMBOBOXIDC_D3D_VSHADER_MODE,140,197,105,70,CBS_DROPDOWNLIST | 
WS_VSCROLL | WS_TABSTOP
 
 CONTROL Pixel Shader aktivieren (wenn von Hardware unterstützt), 
IDC_D3D_PSHADER_MODE,Button,BS_AUTOCHECKBOX | WS_TABSTOP,15,212,230,10
+LTEXT   Größe des Grafikspeichers(in 
Megabytes),IDC_STATIC,15,232,140,12
+COMBOBOXIDC_VIDEOMEMORY_SIZE_COMBO,150,232,40,112,CBS_DROPDOWN | 
WS_VSCROLL | WS_TABSTOP | CBS_LOWERCASE
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
diff --git a/programs/winecfg/En.rc b/programs/winecfg/En.rc
index 02d4850..218150a 100644
--- a/programs/winecfg/En.rc
+++ b/programs/winecfg/En.rc
@@ -79,12 +79,14 @@ BEGIN
 EDITTEXTIDC_DESKTOP_WIDTH,64,167,40,12,ES_AUTOHSCROLL | ES_NUMBER 
| WS_DISABLED
 EDITTEXTIDC_DESKTOP_HEIGHT,117,167,40,12,ES_AUTOHSCROLL | 
ES_NUMBER | WS_DISABLED
 
-GROUPBOX Direct3D ,IDC_STATIC,8,189,244,50
+GROUPBOX Direct3D ,IDC_STATIC,8,189,244,60
 
 LTEXT  Vertex Shader Support: ,IDC_STATIC,15,199,80,30
 COMBOBOX   IDC_D3D_VSHADER_MODE,100,197,145,70,CBS_DROPDOWNLIST | 
WS_VSCROLL | WS_TABSTOP
 
 CONTROL Allow Pixel Shader (if supported by 
hardware),IDC_D3D_PSHADER_MODE,Button,BS_AUTOCHECKBOX | 
WS_TABSTOP,15,216,230,10
+LTEXT   Video Memory Size (in 
megabytes):,IDC_STATIC,15,232,120,12
+COMBOBOXIDC_VIDEOMEMORY_SIZE_COMBO,130,232,40,112,CBS_DROPDOWN | 
WS_VSCROLL | WS_TABSTOP | CBS_LOWERCASE
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
diff --git a/programs/winecfg/Es.rc b/programs/winecfg/Es.rc
index 2430b02..d7dea8b 100644
--- a/programs/winecfg/Es.rc
+++ b/programs/winecfg/Es.rc
@@ -83,6 +83,8 @@ BEGIN
 COMBOBOXIDC_D3D_VSHADER_MODE,100,197,145,70,CBS_DROPDOWNLIST | 
WS_VSCROLL | WS_TABSTOP
 
 CONTROL Permitir Pixel Shader (si hay soporte por 
hardware),IDC_D3D_PSHADER_MODE,Button,BS_AUTOCHECKBOX | 
WS_TABSTOP,15,216,230,10
+LTEXT   Video Memory Size (in 
megabytes):,IDC_STATIC,15,232,120,12
+COMBOBOXIDC_VIDEOMEMORY_SIZE_COMBO,130,232,40,112,CBS_DROPDOWN | 
WS_VSCROLL | WS_TABSTOP | CBS_LOWERCASE
 END
 
 IDD_DLLCFG DIALOG DISCARDABLE  0, 0, 260, 250
diff --git a/programs/winecfg/Fi.rc b/programs/winecfg/Fi.rc
index 16da0ca..f8f8180 100644
--- a/programs/winecfg/Fi.rc
+++ b/programs/winecfg/Fi.rc
@@ -84,6 +84,8 @@ BEGIN
 COMBOBOX   IDC_D3D_VSHADER_MODE,100,218,150,70,CBS_DROPDOWNLIST | 
WS_VSCROLL | WS_TABSTOP
 
 CONTROL Salli Pixel Shader:n käyttö laitteiston 
tukiessa,IDC_D3D_PSHADER_MODE,Button,BS_AUTOCHECKBOX | 
WS_TABSTOP,15,237,230,10
+LTEXT   Video Memory Size (in 
megabytes):,IDC_STATIC,15,232,120,12
+COMBOBOXIDC_VIDEOMEMORY_SIZE_COMBO,130,232,40,112,CBS_DROPDOWN | 
WS_VSCROLL 

Re: hnetcfg: [resend 2] 3/6 add local header file

2007-05-21 Thread Michael Stefaniuc

Jeff Latimer wrote:

---
 dlls/hnetcfg/hnetcfg_dll.h |   70 


 1 files changed, 70 insertions(+), 0 deletions(-)
 create mode 100644 dlls/hnetcfg/hnetcfg_dll.h




diff --git a/dlls/hnetcfg/hnetcfg_dll.h b/dlls/hnetcfg/hnetcfg_dll.h
new file mode 100644
index 000..64b1f0c
--- /dev/null
+++ b/dlls/hnetcfg/hnetcfg_dll.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2007 Jeff Latimer
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_HNETCFG_DLL_H
+#define __WINE_HNETCFG_DLL_H
+
+#include windef.h
+#include wine/debug.h
+#include winbase.h
+#include winnt.h
+
+
+/* __stdcall HNETCFG_HNetDeleteRasConnection(); */

It's only the comments but why don't you use WINAPI instead of __stdcall?

bye
michael


+/* __stdcall HNETCFG_HNetFreeSharingServicesPage(); */
+/* __stdcall HNETCFG_HNetGetSharingServicesPage(); */
+/* __stdcall HNETCFG_WinBomConfigureWindowsFirewall(); */
+/* __stdcall HNETCFG_HNetFreeFirewallLoggingSettings(); */
+/* __stdcall HNETCFG_HNetGetFirewallSettingsPage(); */
+/* __stdcall HNETCFG_HNetGetShareAndBridgeSettings(); */
+/* __stdcall HNETCFG_HNetSetShareAndBridgeSettings(); */
+/* __stdcall HNETCFG_HNetSharedAccessSettingsDlg(); */
+/* __stdcall HNETCFG_HNetSharingAndFirewallSettingsDlg(); */
+/* __stdcall HNETCFG_IcfChangeNotificationCreate(); */
+/* __stdcall HNETCFG_IcfChangeNotificationDestroy(); */
+/* __stdcall HNETCFG_IcfCheckAppAuthorization(); */
+/* __stdcall HNETCFG_IcfCloseDynamicFwPort(); */
+/* __stdcall HNETCFG_IcfConnect(); */
+/* __stdcall HNETCFG_IcfDisconnect(); */
+/* __stdcall HNETCFG_IcfFreeAdapters(); */
+/* __stdcall HNETCFG_IcfFreeDynamicFwPorts(); */
+/* __stdcall HNETCFG_IcfFreeProfile(); */
+/* __stdcall HNETCFG_IcfFreeString(); */
+/* __stdcall HNETCFG_IcfFreeTickets(); */
+/* __stdcall HNETCFG_IcfGetAdapters(); */
+/* __stdcall HNETCFG_IcfGetCurrentProfileType(); */
+/* __stdcall HNETCFG_IcfGetDynamicFwPorts(); */
+/* __stdcall HNETCFG_IcfGetOperationalMode(); */
+/* __stdcall HNETCFG_IcfGetProfile(); */
+/* __stdcall HNETCFG_IcfGetTickets(); */
+/* __stdcall HNETCFG_IcfIsIcmpTypeAllowed(); */
+/* __stdcall HNETCFG_IcfIsPortAllowed(); */
+/* __stdcall HNETCFG_IcfOpenDynamicFwPort(); */
+/* __stdcall HNETCFG_IcfOpenDynamicFwPortWithoutSocket(); */
+/* __stdcall HNETCFG_IcfOpenFileSharingPorts(); */
+/* __stdcall HNETCFG_IcfRefreshPolicy(); */
+/* __stdcall HNETCFG_IcfRemoveDisabledAuthorizedApp(); */
+/* __stdcall HNETCFG_IcfSetServicePermission(); */
+/* __stdcall HNETCFG_IcfSubNetsGetScope(); */
+/* __stdcall HNETCFG_IcfSubNetsIsStringValid(); */
+/* __stdcall HNETCFG_IcfSubNetsToString(); */
+
+HRESULT NetFwMgr_create(IUnknown *, LPVOID *);
+
+
+#endif /* __WINE_HNETCFG_DLL_H */









--
Michael Stefaniuc   Tel.: +49-711-96437-199
Sr. Network EngineerFax.: +49-711-96437-111
Red Hat GmbHEmail: [EMAIL PROTECTED]
Hauptstaetterstr. 58http://www.redhat.de/
D-70178 Stuttgart




Re: hnetcfg: [resend 2] 1/6 uuids for INetFwMgr interface

2007-05-21 Thread Robert Shearman

Jeff Latimer wrote:

diff --git a/include/uuids.h b/include/uuids.h
index e3fb41b..cf99672 100644
--- a/include/uuids.h
+++ b/include/uuids.h
@@ -271,5 +271,7 @@ OUR_GUID_ENTRY(CLSID_VideoProcAmpPropertyPage,   
0x71f96464, 0x78f3, 0x11d0,
 OUR_GUID_ENTRY(CLSID_CameraControlPropertyPage,  0x71f96465, 0x78f3, 
0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56)
 OUR_GUID_ENTRY(CLSID_AnalogVideoDecoderPropertyPage, 0x71f96466, 0x78f3, 
0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56)
 OUR_GUID_ENTRY(CLSID_VideoStreamConfigPropertyPage,  0x71f96467, 0x78f3, 
0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56)
+OUR_GUID_ENTRY(IID_INetFwMgr,0xf7898af5, 0xcac4, 
0x4632, 0xa2, 0xec, 0xda ,0x06, 0xe5, 0x11, 0x1a, 0xf2)
+OUR_GUID_ENTRY(CLSID_NetFwMgr,   0x304ce942, 0x6e39, 
0x40d8, 0x94, 0x3a, 0xb9, 0x13, 0xc4, 0x0c, 0x9c, 0xd4)
 
 #undef OUR_GUID_ENTRY
  


This isn't in the PSDK version of uuids.h and also uuid.lib from the 
PSDK doesn't contain these symbols either (although there are a bunch of 
IID_INetFwV6... symbols that might be related).


--
Rob Shearman





re: msi ole automation: where to next?

2007-05-21 Thread Dan Kegel

Misha wrote:

[I have the scripting required by the Vector NTI and the iTunes 7 installers
 working.  What should I do next?]


First off, congratulations!

If you're interested in continuing to work on MSI, I'd suggest
asking James Hawkins for suggestions.

If you're more interested in adding COM interfaces to things,
perhaps implementing the iTextServices api to riched20
would be useful.  Maarten got started on that, but I think
it's not complete enough for say, Google Talk to function.

Most useful of all might be for you to look at
improving our COM implementation itself.  Rob Shearman
could give you suggestions on where to start there.
- Dan

--
Wine for Windows ISVs: http://kegel.com/wine/isv




Re: [PATCH 2/2] wininet: Implement basic non-proxy authentiction.

2007-05-21 Thread Detlef Riekenberg
On Mo, 2007-05-21 at 14:28 +0100, Robert Shearman wrote:

 +int userlen = WideCharToMultiByte(CP_UTF8, 0,
 domain_and_username, lstrlenW(domain_and_username), NULL, 0, NULL,
 NULL);
 +int passlen = WideCharToMultiByte(CP_UTF8, 0, password,
 lstrlenW(password), NULL, 0, NULL, NULL);

What is the advantage to use lstrlenW() here over -1, as used below?

 +
 +WideCharToMultiByte(CP_UTF8, 0, domain_and_username, -1,
 auth_data, userlen, NULL, NULL);
 +auth_data[userlen] = ':';
 +WideCharToMultiByte(CP_UTF8, 0, password, -1,
 auth_data[userlen+1], passlen, NULL, NULL);

Using -1 has the advantage to reduce the code-size.

Thanks.
 
-- 
 
By by ... Detlef






localui/tests: Add tests for ConfigurePortUI (try 2)

2007-05-21 Thread Detlef Riekenberg
Changelog:
 localui/tests: Add tests for ConfigurePortUI

Removed the implicit import of msvcrt, as suggested by Alexandre


(Replaced swprintf by sprintf with MultiByteToWideChar as 
Alexandre did in serialui/tests)



-- 
 
By by ... Detlef

From 3ec5c52ce8f27f41543e54ab5771f5e5faca3deb Mon Sep 17 00:00:00 2001
From: Detlef Riekenberg [EMAIL PROTECTED]
Date: Mon, 21 May 2007 17:50:29 +0200
Subject: [PATCH] localui/tests: Add tests for ConfigurePortUI
---
 dlls/localui/tests/Makefile.in |2 
 dlls/localui/tests/localui.c   |  175 
 2 files changed, 175 insertions(+), 2 deletions(-)

diff --git a/dlls/localui/tests/Makefile.in b/dlls/localui/tests/Makefile.in
index 191a312..8532af8 100644
--- a/dlls/localui/tests/Makefile.in
+++ b/dlls/localui/tests/Makefile.in
@@ -3,7 +3,7 @@ TOPOBJDIR = ../../..
 SRCDIR= @srcdir@
 VPATH = @srcdir@
 TESTDLL   = localui.dll
-IMPORTS   = kernel32
+IMPORTS   = kernel32 winspool
 
 CTESTS = \
localui.c
diff --git a/dlls/localui/tests/localui.c b/dlls/localui/tests/localui.c
index e3a1813..4c5e769 100644
--- a/dlls/localui/tests/localui.c
+++ b/dlls/localui/tests/localui.c
@@ -20,11 +20,13 @@
  */
 
 #include stdarg.h
+#include stdio.h
 
 #include windef.h
 #include winbase.h
 #include winerror.h
 #include wingdi.h
+#include winnls.h
 #include winreg.h
 
 #include winspool.h
@@ -42,6 +44,51 @@ static BOOL  (WINAPI *pAddPortUI)(PCWSTR
 static BOOL  (WINAPI *pConfigurePortUI)(PCWSTR, HWND, PCWSTR);
 static BOOL  (WINAPI *pDeletePortUI)(PCWSTR, HWND, PCWSTR);
 
+static WCHAR does_not_existW[] = 
{'d','o','e','s','_','n','o','t','_','e','x','i','s','t',0};
+static WCHAR emptyW[] = {0};
+static CHAR  fmt_comA[] = {'C','O','M','%','u',':',0};
+static CHAR  fmt_lptA[] = {'L','P','T','%','u',':',0};
+static WCHAR portname_fileW[] = {'F','I','L','E',':',0};
+
+static LPBYTE pi_buffer;
+static DWORD pi_numports;
+static DWORD pi_needed;
+
+static PORT_INFO_2W * lpt_present;
+static PORT_INFO_2W * com_present;
+static PORT_INFO_2W * file_present;
+
+static LPWSTR   lpt_absent;
+static LPWSTR   com_absent;
+
+/* ### */
+
+static PORT_INFO_2W * find_portinfo2(LPWSTR pPort)
+{
+PORT_INFO_2W * pi;
+DWORD   res;
+
+if (!pi_buffer) {
+res = EnumPortsW(NULL, 2, NULL, 0, pi_needed, pi_numports);
+pi_buffer = HeapAlloc(GetProcessHeap(), 0, pi_needed);
+SetLastError(0xdeadbeef);
+res = EnumPortsW(NULL, 2, pi_buffer, pi_needed, pi_needed, 
pi_numports);
+}
+if (pi_buffer) {
+pi = (PORT_INFO_2W *) pi_buffer;
+res = 0;
+while (pi_numports  res) {
+if (lstrcmpiW(pi-pPortName, pPort) == 0) {
+return pi;
+}
+pi++;
+res++;
+}
+}
+return NULL;
+}
+
+
 /* ### */
 
 static LPCSTR load_functions(void)
@@ -59,6 +106,96 @@ static LPCSTR load_functions(void)
 return NULL;
 }
 
+/* ### 
+ *   strdupW [internal]
+ */
+
+static LPWSTR strdupW(LPCWSTR strW)
+{
+LPWSTR  ptr;
+
+ptr = HeapAlloc(GetProcessHeap(), 0, (lstrlenW(strW) + 1) * sizeof(WCHAR));
+if (ptr) {
+lstrcpyW(ptr, strW);
+}
+return ptr;
+}
+
+/* ### */
+   
+static void test_ConfigurePortUI(void)
+{
+DWORD   res;
+
+/* not present before w2k */
+if (!pConfigurePortUI) {
+skip(ConfigurePortUI not found\n);
+return;
+}
+
+SetLastError(0xdeadbeef);
+res = pConfigurePortUI(NULL, NULL, NULL);
+ok( !res  (GetLastError() == ERROR_UNKNOWN_PORT),
+got %d with %u (expected '0' with ERROR_UNKNOWN_PORT)\n,
+res, GetLastError());
+
+
+SetLastError(0xdeadbeef);
+res = pConfigurePortUI(NULL, NULL, emptyW);
+ok( !res  (GetLastError() == ERROR_UNKNOWN_PORT),
+got %d with %u (expected '0' with ERROR_UNKNOWN_PORT)\n,
+res, GetLastError());
+
+
+SetLastError(0xdeadbeef);
+res = pConfigurePortUI(NULL, NULL, does_not_existW);
+ok( !res  (GetLastError() == ERROR_UNKNOWN_PORT),
+got %d with %u (expected '0' with ERROR_UNKNOWN_PORT)\n,
+res, GetLastError());
+
+
+if (winetest_interactive  lpt_present) {
+SetLastError(0xdeadbeef);
+res = pConfigurePortUI(NULL, NULL, lpt_present-pPortName);
+ok( res ||
+(GetLastError() == ERROR_CANCELLED) || (GetLastError() == 
ERROR_ACCESS_DENIED),
+got %d with %u (expected '!= 0' or '0' with: ERROR_CANCELLED or 
+ERROR_ACCESS_DENIED)\n, res, GetLastError());
+}
+
+if (lpt_absent) {
+SetLastError(0xdeadbeef);
+res = pConfigurePortUI(NULL, NULL, lpt_absent);
+ok( !res  (GetLastError() == ERROR_UNKNOWN_PORT),
+got %d with %u (expected '0' with ERROR_UNKNOWN_PORT)\n,
+res, GetLastError());
+}
+
+if (winetest_interactive  com_present) 

re: msi ole automation: where to next?

2007-05-21 Thread Misha Koshelev
On Mon, 2007-05-21 at 08:23 -0700, Dan Kegel wrote:
 Misha wrote:
  [I have the scripting required by the Vector NTI and the iTunes 7 installers
   working.  What should I do next?]
 
 First off, congratulations!
 
 If you're interested in continuing to work on MSI, I'd suggest
 asking James Hawkins for suggestions.
 
 If you're more interested in adding COM interfaces to things,
 perhaps implementing the iTextServices api to riched20
 would be useful.  Maarten got started on that, but I think
 it's not complete enough for say, Google Talk to function.
 
 Most useful of all might be for you to look at
 improving our COM implementation itself.  Rob Shearman
 could give you suggestions on where to start there.
 - Dan
 

Thanks Dan for your thoughtful descriptions, I will have to mull over
where to head next.

I guess what I am still concerned about is this blurb from an email Mike
McCormack had sent me when I started working on the scripting/automation
stuff:

 The work that I was doing is aimed at running custom action threads in
 a separate process.  It will require the OLE interfaces
 (Session/Installer) to be working before the custom actions can run
 out of process.  The custom action queue needs to be exposed by
 another OLE interface so that msiexec can query it. 

Now I really don't understand this or whether this is still the plan for
custom actions (James?) or why having custom action threads in a
separate process would require Session and Installer to be working at
all, since they are mostly just wrappers around the C functions, which
seem to be much easier to call from another C program like msiexec than
the automation functions. However, I want to make sure that the full
Installer/Session functionality is not required by something like this
that could potentially improve more than just scripting support before I
completely move on to something else...

Thanks
Misha




Re: msi ole automation: where to next?

2007-05-21 Thread Dan Kegel

On 5/21/07, Misha Koshelev [EMAIL PROTECTED] wrote:

I guess what I am still concerned about is this blurb from an email Mike
McCormack had sent me when I started working on the scripting/automation
stuff:

 The work that I was doing is aimed at running custom action threads in
 a separate process.  It will require the OLE interfaces
 (Session/Installer) to be working before the custom actions can run
 out of process.  The custom action queue needs to be exposed by
 another OLE interface so that msiexec can query it.

Now I really don't understand this or whether this is still the plan for
custom actions (James?)


It's still the plan, and James is going to be working on it.


or why having custom action threads in a
separate process would require Session and Installer to be working at
all, since they are mostly just wrappers around the C functions, which
seem to be much easier to call from another C program like msiexec than
the automation functions. However, I want to make sure that the full
Installer/Session functionality is not required by something like this
that could potentially improve more than just scripting support before I
completely move on to something else...


I'm sure James can fill you in.  (FWIW, James, my druthers would be that
you have a good look at the Autocad 2000/2002/2004 installer problems
before diving in on the msi comification task.  I'll bring the discs
in tomorrow.)
- Dan




Re: shlwapi: stub implementation for SHSetTimerQueueTimer (try 2)

2007-05-21 Thread Nigel Liang (梁乃強)

Hi,

I am not quite sure I understand what you mean? CreateTimerQueueTimer
should return a Boolean indicating whether the operation has
succeeded. Checking the return value in a ternary operation should
return the correct handle if CreateTimerQueueTimer succeeds and NULL
otherwise. Unless I have misunderstood the msdn documentation?
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/shell_new/shlwapi_wrappers.asp

-Nigel

On 5/21/07, Dmitry Timoshkov [EMAIL PROTECTED] wrote:

Nigel Liang [EMAIL PROTECTED] wrote:

 +HANDLE WINAPI SHSetTimerQueueTimer(HANDLE hQueue,
 +WAITORTIMERCALLBACK pfnCallback, LPVOID pContext, DWORD dwDueTime,
 +DWORD dwPeriod, LPCSTR lpszLibrary, DWORD dwFlags)
 +{
...
 +return CreateTimerQueueTimer(hNewTimer, hQueue, pfnCallback, pContext,
 +dwDueTime, dwPeriod, dwFlags)?hNewTimer:NULL;

This can't work: CreateTimerQueueTimer and SHSetTimerQueueTimer
return different things.

--
Dmitry.






Re: msi ole automation: where to next?

2007-05-21 Thread Misha Koshelev
On Mon, 2007-05-21 at 10:05 -0700, Dan Kegel wrote:
 On 5/21/07, Misha Koshelev [EMAIL PROTECTED] wrote:
  I guess what I am still concerned about is this blurb from an email Mike
  McCormack had sent me when I started working on the scripting/automation
  stuff:
 
   The work that I was doing is aimed at running custom action threads in
   a separate process.  It will require the OLE interfaces
   (Session/Installer) to be working before the custom actions can run
   out of process.  The custom action queue needs to be exposed by
   another OLE interface so that msiexec can query it.
 
  Now I really don't understand this or whether this is still the plan for
  custom actions (James?)
 
 It's still the plan, and James is going to be working on it.
 
  or why having custom action threads in a
  separate process would require Session and Installer to be working at
  all, since they are mostly just wrappers around the C functions, which
  seem to be much easier to call from another C program like msiexec than
  the automation functions. However, I want to make sure that the full
  Installer/Session functionality is not required by something like this
  that could potentially improve more than just scripting support before I
  completely move on to something else...
 
 I'm sure James can fill you in.  (FWIW, James, my druthers would be that
 you have a good look at the Autocad 2000/2002/2004 installer problems
 before diving in on the msi comification task.  I'll bring the discs
 in tomorrow.)
 - Dan

I guess I would definitely like to learn more about this, then, as it
seems like this, per Mike's comment, would require all the automation
functions to be implemented, and I wouldn't mind to keep working on this
as I've already got a good tempo going with it and it is kind of nice to
make/design a whole part together like this. Plus I feel like I'm
catching a fair number of msi bugs in other areas (mostly registry.c)
through my conformance tests for automation.

But I would definitely like to know more about it, as right now I don't
really see how this separate custom action queue would be calling
automation objects or why...

Misha




Re: msi ole automation: where to next?

2007-05-21 Thread Misha Koshelev
On Mon, 2007-05-21 at 10:05 -0700, Dan Kegel wrote:
 On 5/21/07, Misha Koshelev [EMAIL PROTECTED] wrote:
  I guess what I am still concerned about is this blurb from an email Mike
  McCormack had sent me when I started working on the scripting/automation
  stuff:
 
   The work that I was doing is aimed at running custom action threads in
   a separate process.  It will require the OLE interfaces
   (Session/Installer) to be working before the custom actions can run
   out of process.  The custom action queue needs to be exposed by
   another OLE interface so that msiexec can query it.
 
  Now I really don't understand this or whether this is still the plan for
  custom actions (James?)
 
 It's still the plan, and James is going to be working on it.
 
  or why having custom action threads in a
  separate process would require Session and Installer to be working at
  all, since they are mostly just wrappers around the C functions, which
  seem to be much easier to call from another C program like msiexec than
  the automation functions. However, I want to make sure that the full
  Installer/Session functionality is not required by something like this
  that could potentially improve more than just scripting support before I
  completely move on to something else...
 
 I'm sure James can fill you in.  (FWIW, James, my druthers would be that
 you have a good look at the Autocad 2000/2002/2004 installer problems
 before diving in on the msi comification task.  I'll bring the discs
 in tomorrow.)
 - Dan

I guess the bottom line is I don't mind eventually implementing _all_
the automation functions as long as I know that I'm not just wasting my
time (i.e., if these actions are only required by installer scripts, and
I bet most installer scripts do not even use most of the functions).

Misha




Re: msi ole automation: where to next?

2007-05-21 Thread Dan Kegel

On 5/21/07, Misha Koshelev [EMAIL PROTECTED] wrote:

I guess the bottom line is I don't mind eventually implementing _all_
the automation functions as long as I know that I'm not just wasting my
time ...


I doubt anyone knows the complete set of those functions
that actually get used by real-world installers.

I think your choice is either a) keep plugging along on msi
automation on the theory that it's good for msi in general
and might help a few as yet unknown apps, or b) put this
on the back burner and go work on something known to
be blocking some app you care about.
- Dan




Re: ADVAPI32: Start test for service tests

2007-05-21 Thread James Hawkins

On 5/21/07, Rolf Kalbermatter [EMAIL PROTECTED] wrote:

James Hawkins [mailto:[EMAIL PROTECTED] wrote:

+ok(size = 1, size should be = 1 was %d!, size);

This is a bad test.  According to msdn, GetServiceDisplayName does not
modify lpcchBuffer on error, so size should be exactly 0.

MSDN says a lot of things. On my XP SP2 it returns 1 as size when passed
an empty service name. Also failing here is a bit ambigeuos since the
dunction also fails when a NULL pointer is passed or the buffer is to
small, but it does change the size into what it expects in these two
cases.



...and msdn is wrong a lot, but that doesn't mean the check is right.
If the value you get is 1, then check exactly for 1.


+static BOOL test_service_info(SC_HANDLE hscm)

test functions are void, not BOOL.  You're never going to do anything but
return, and there's no value to check by the caller.

I took this more or less directly from registry.c in the same directory.



No test function in registry.c returns BOOL, and to save you some time
replying, set_privileges is not a test function.  It's a helper
function.


+ok(size, size should be returned!);

And what is the size?  Tests are supposed to be exact.  If our
implementation
is incorrect, and we return size as 39491, that's certainly not correct,
but
this test won't fail when it should.

This won't work for localized Windows versions. The display name is possibly
translated. Also, on XP SP2 the A function returns the size in ASCI chars
that
the W function will need in bytes. Not a behaviour I feel Wine should
imitate
without an app that would need that behaviour.



Huh?  The function, A or W, returns the number of TCHARS.  What
behavior should wine not imitate?  We don't ignore expected behavior
just because we doubt an app will depend on it, especiallly a behavior
that is so common.


I'll be gone for two weeks for vacation. If anyone wants to continue on that
please feel free. Otherwise I'll be picking this up afterwards.

Rolf Kalbermatter





--
James Hawkins




Re: shlwapi: stub implementation for SHSetTimerQueueTimer (try 2)

2007-05-21 Thread James Hawkins

On 5/21/07, Nigel Liang (梁乃強) [EMAIL PROTECTED] wrote:

Hi,

I am not quite sure I understand what you mean? CreateTimerQueueTimer
should return a Boolean indicating whether the operation has
succeeded. Checking the return value in a ternary operation should
return the correct handle if CreateTimerQueueTimer succeeds and NULL
otherwise. Unless I have misunderstood the msdn documentation?
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/shell_new/shlwapi_wrappers.asp




+return CreateTimerQueueTimer(hNewTimer, hQueue, pfnCallback, pContext,
+dwDueTime, dwPeriod, dwFlags)?hNewTimer:NULL;


I'm pretty sure Dmitry did what I did.  That last little blurb at the
end (?hNewTimer:NULL;) is not very noticeable, and looks like the end
of the function arguments at first glance.  You really should get rid
of the ternary condition and split it out for code readability.

Also, please bottom-post on this list.



On 5/21/07, Dmitry Timoshkov [EMAIL PROTECTED] wrote:
 Nigel Liang [EMAIL PROTECTED] wrote:

  +HANDLE WINAPI SHSetTimerQueueTimer(HANDLE hQueue,
  +WAITORTIMERCALLBACK pfnCallback, LPVOID pContext, DWORD dwDueTime,
  +DWORD dwPeriod, LPCSTR lpszLibrary, DWORD dwFlags)
  +{
 ...
  +return CreateTimerQueueTimer(hNewTimer, hQueue, pfnCallback, pContext,
  +dwDueTime, dwPeriod, dwFlags)?hNewTimer:NULL;

 This can't work: CreateTimerQueueTimer and SHSetTimerQueueTimer
 return different things.

 --
 Dmitry.







--
James Hawkins




FPS tool for wine

2007-05-21 Thread Tomas . Zijdemans
The largest gaming site in Norway recently did an extensive review of gaming on
Linux, but Wine was left out of the benchmark because no FPS tool exists for
Wine. Surely this can't be true?




Re: FPS tool for wine

2007-05-21 Thread Alexander Nicolaysen Sørnes
Tirsdag 22 mai 2007 00:13, skrev [EMAIL PROTECTED]:
 The largest gaming site in Norway recently did an extensive review of
 gaming on Linux, but Wine was left out of the benchmark because no FPS
 tool exists for Wine. Surely this can't be true?

Isn't the point rather to test how actual games run in Wine?  Then you can use 
a game or a benchmarking tool like 3DMark.


Regards,

Alexander N. Sørnes




RE: FPS tool for wine

2007-05-21 Thread EA Durbin

does fraps not work in wine?



From: [EMAIL PROTECTED]
To: wine-devel@winehq.org
Subject: FPS tool for wine
Date: Tue, 22 May 2007 00:13:22 +0200

The largest gaming site in Norway recently did an extensive review of 
gaming on
Linux, but Wine was left out of the benchmark because no FPS tool exists 
for

Wine. Surely this can't be true?




_
Catch suspicious messages before you open them—with Windows Live Hotmail. 
http://imagine-windowslive.com/hotmail/?locale=en-usocid=TXT_TAGHM_migration_HM_mini_protection_0507






Re: FPS tool for wine

2007-05-21 Thread Stefan Dösinger
Am Dienstag 22 Mai 2007 00:13 schrieb [EMAIL PROTECTED]:
 The largest gaming site in Norway recently did an extensive review of
 gaming on Linux, but Wine was left out of the benchmark because no FPS
 tool exists for Wine. Surely this can't be true?
What exactly do they mean with FPS tools? After working with all this 3D 
business since almost 2 years I do not know what this term would precicely 
mean :-o If they mean built-in benchmark tools, then we have something like 
that, the fps debug channel which shows the ddraw / d3d / opengl buffer flips 
per secound. But why would they prefer external stuff over the games' 
built-in benchmark features?




Re: FPS tool for wine

2007-05-21 Thread Lei Zhang

Right, for instance Tom Wickline ran 3dmark2000 and posted the results here:

http://wiki.winehq.org/BenchMark-0.9.33

On 5/21/07, Alexander Nicolaysen Sørnes [EMAIL PROTECTED] wrote:

Tirsdag 22 mai 2007 00:13, skrev [EMAIL PROTECTED]:
 The largest gaming site in Norway recently did an extensive review of
 gaming on Linux, but Wine was left out of the benchmark because no FPS
 tool exists for Wine. Surely this can't be true?

Isn't the point rather to test how actual games run in Wine?  Then you can use
a game or a benchmarking tool like 3DMark.


Regards,

Alexander N. Sørnes