wsock32 conformance test
Hi, We're working on a set of tests for wsock32.dll. So far we've completed a test of blocking network I/O with multiple threads. Before we post to wine-patches, we'd appreciate any critiques/input. Fredy, Doug, and I are UCLA undergraduates in a software engineering course. Thanks for your help, Thomas Kho cc: Fredy Garcia, Douglas Rosenberg (group members) Files available at: http://www.geekymedia.com/viewcvs/cgi/viewcvs.cgi/wine4/wine/dlls/wsock32/tests/ wsock32_test.patch Description: Binary data
Re: working installshield?
On Mon, Feb 14, 2005 at 10:50:44AM -0600, Robert Shearman wrote: Marcus Meissner wrote: Hi, Is there any chance to have a working installshield at some time? I don't really want to fall back to the december or even earlier WINE releases for our spring SUSE Linux product ;) I haven't been testing against InstallShield for a while, but last time I checked it was hanging because we do not process window messages during RPCs. If you want to implement this yourself, I can give you details on how to do this. I will get around to this eventually, but at the moment I have other priorities. If the worst happens and InstallShield is still not working, then you can still ship the December ole32 with the most recent Wine. Currently it reports things like: err:ole:register_ifstub couldn't get IPSFactory buffer for interface {0131---c000-0046} err:ole:register_ifstub couldn't get IPSFactory buffer for interface {0131---c000-0046} fixme:sync:SetNamedPipeHandleState 0xec 0x55c40fbc (nil) (nil) err:ole:proxy_manager_create_ifproxy Could not get IPSFactoryBuffer for interface {0131---c000-0046}, error 0x80040155 fixme:sync:SetNamedPipeHandleState 0x88 0x55c40fb8 (nil) (nil) err:ole:register_ifstub couldn't get IPSFactory buffer for interface {0131---c000-0046} Which is IRemUnknown I think. Should it do that? Ciao, Marcus pgpLKSS4mYrCF.pgp Description: PGP signature
Re: working installshield?
On Fri, Feb 25, 2005 at 11:16:15AM +0100, Marcus Meissner wrote: On Mon, Feb 14, 2005 at 10:50:44AM -0600, Robert Shearman wrote: Marcus Meissner wrote: Hi, Is there any chance to have a working installshield at some time? I don't really want to fall back to the december or even earlier WINE releases for our spring SUSE Linux product ;) I haven't been testing against InstallShield for a while, but last time I checked it was hanging because we do not process window messages during RPCs. If you want to implement this yourself, I can give you details on how to do this. I will get around to this eventually, but at the moment I have other priorities. If the worst happens and InstallShield is still not working, then you can still ship the December ole32 with the most recent Wine. Currently it reports things like: err:ole:register_ifstub couldn't get IPSFactory buffer for interface {0131---c000-0046} err:ole:register_ifstub couldn't get IPSFactory buffer for interface {0131---c000-0046} fixme:sync:SetNamedPipeHandleState 0xec 0x55c40fbc (nil) (nil) err:ole:proxy_manager_create_ifproxy Could not get IPSFactoryBuffer for interface {0131---c000-0046}, error 0x80040155 fixme:sync:SetNamedPipeHandleState 0x88 0x55c40fb8 (nil) (nil) err:ole:register_ifstub couldn't get IPSFactory buffer for interface {0131---c000-0046} Which is IRemUnknown I think. Ignore me, I should have reregistered wine.inf (old fake wine setup) :/ Ciao, Marcus pgpanXctDdBLs.pgp Description: PGP signature
Re: [RESEND2] Uninstaller localization
Jonathan Ernst [EMAIL PROTECTED] wrote: Next I'll change the window to a dialog if I can. Thanks. -wc.lpszClassName = appname; +wc.lpszClassName = sAppname; if (!RegisterClass(wc)) exit(1); -hWnd = CreateWindow( appname, Wine Application Uninstaller, +hWnd = CreateWindow( sAppname, sAppname, Sorry for not pointing out to it earlier, but it's better to leave the window class name in ASCII. -- Dmitry.
Re: Compiling wine dlls for windows
On Thursday 24 February 2005 21:19, Hans Leidekker wrote: On Thursday 24 February 2005 17:53, Michael Jung wrote: I would like to test a wine dll I'm working on on windows. Could you please tell me how the wine dlls are build for windows ? (Or beat me to the the place where it is documented.) Among other possibilities, if you have an RPM based distro you could use my MinGW cross compiler RPM packages, prebuilt for Fedora Core and SUSE but also available as source RPMS to rebuild yourself: Thanks for all the tips I've got on this one. Bye, -- Michael Jung [EMAIL PROTECTED]
Space Empires: Starfury
I have posted to the list before about this game. Anyway, a group of us over at the publisher's forum really want to see this game running, so we will be getting in #starfury on freenode this saturday to try and get it to run. We would really appreciate the help if anyone from the list with a more technical background on the inner workings of wine would join in and help. We've set a starting time of around 15h00 UTC, so if any of you wanted to join in, would be greatly appreciated.
Re: SHELL32: implement loading and saving of MSI advertised shortcut info
Hi Mike, + * in that string is parsed an stored. s/an/and/ +typedef struct volume_info_t +{ +DWORD type; +DWORD serial; +WCHAR label[12]; /* assume 8.3 */ Shouldn't label's size be 13? 8+3+'.'+NULL? +if( (buffer.magic0x) != 0xa000 ) A symbolic constant would be nice here. Thanks, --Juan __ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
Problem using winelib to compile Std Lib strings
Ive undertaken the task of converting 2 rather large Win32 applications to run on Solaris 10. I have managed to tweak nearly all of the files so they will compile with wine after running winemaker. The files I cant seem to compile are ones that use std string. I get a few errors like the following: error: ::div has not been declared error: ::ldiv has not been declared And tons about /usr/include/pthread.h like the following: error: uintptr_t does not name a type error: caddr_t has not been declared error: caddr_t does not name a type error: pthread_attr_t was not declared in this scope The files in question have lines like the following: #include string using namespace std; Ive tried including various additional header files like sys/types.h and dtrace/h, with varying success, but still approx 200 errors when trying to compile these files. The error lines say they are from include/c++/3.4.2, so Im assuming that it is using the 3.4.2 compiler as opposed to the 2.95 one also installed on these machines. The development Ive been tasked with will move several people off of winblows machines and onto Solaris 10 if I can succeed, so it is even more critical in my mind to get this to work. Rob
Re: wsock32 conformance test
Hey guys, nice work. Minor comments below: +/* we often pass this size by reference */ +int sizeofSOCKADDR_IN = sizeof(SOCKADDR_IN); When you pass it by reference, you don't reinitialize it after a call that might modify it, e.g. here: + /* get port number */ + getsockname(*sock, (SOCKADDR *) tmpAddr, sizeofSOCKADDR_IN); I think it'd be safer to declare a local int initialized to sizeof(SOCKADDR_IN) and pass this by ref instead. + for (connIndex = 0; connIndex NUM_CLIENTS; connIndex++) { + /* accept connection */ + tmpSock = accept(*sock, (SOCKADDR *) tmpSockAddr, sizeofSOCKADDR_IN); Your indenting's off here. (Do you have to use tabs? Ick.) + connection-serverThread.Handle = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) BlockingServerConnection_Run, connection, 0, connection-serverThread.ID); Please wrap long lines. + const int numTests = 3; Might as well make that static too. Props for first post :) --Juan __ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
Re: [winecfg] Drive autodetection
On Thu, 24 Feb 2005 15:03:47 +0100, Michael Jung wrote: Actually, winecfg's properties.h does use Hungarian notation. Yes, I know. That's left over from the old code which did use it. As I went through the code it was changed to just be regular style.
WINE: Rendering in Diamond2.x works :-)
Hello, I'd like to thank the Winegrowers for providing such a nice flavoured Wine. With the current version, the program Diamond is even able to render the output (at least if one turns off the double buffering): w/o rendering: http://www.physik.fu-berlin.de/~tburnus/wine/diamond2.png w/ rendering: http://www.physik.fu-berlin.de/~tburnus/wine/diamond_rend.png (somehow the menu/tool/status bars are not correctly redrawn and the rendering seems to be too low by the height of a toolbar, but rendering works :-) and hitting Shift-Ctrl-N now works as well (thanks to Dimitry!). Tobias
How do native win32 apps end up calling into x11drv?
Greetings, I'm trying to understand how windows drawing gets translated into X in wine and so I was looking at the {im,ex}ports of x11drv and gdi32. x11drv depends on gdi32 and just seems to export a good chunk of the api that gdi32 exports (BitBlt etc). gdi32 doesn't depend on x11drv or even Xlib. How do native win32 apps end up calling into x11drv? Cheers, Adam
Re: Space Empires: Starfury
Adam Babcock wrote: I have posted to the list before about this game. Anyway, a group of us over at the publisher's forum really want to see this game running, so we will be getting in #starfury on freenode this saturday to try and get it to run. We would really appreciate the help if anyone from the list with a more technical background on the inner workings of wine would join in and help. We've set a starting time of around 15h00 UTC, so if any of you wanted to join in, would be greatly appreciated. Hello Adam, I'll start off by adding in some info and links about this game. HomePage: http://www.malfador.com/starfury/starfury.html System Requirements: Pentium 500MHz or better class machine Windows 95, 98, 2000, ME, XP 32 megabytes RAM or better 1024x768 or better screen resolution 16 bit color display or better DirectX 7.0 (or better) A video card with 3D acceleration 400 megs hard drive space A sound card capable of supporting MP3 and DirectSound playback. Sound card must be DirectX 7.0 (or better) compatible. Demo: http://www.3dgamers.com/games/sestarfury/downloads/ http://www.malfador.com/starfury/sfdemo.html Tom
Microsoft admits targeting Wine users
Here is the link: http://news.zdnet.co.uk/0,39020330,39189180,00.htm Tom
MSVCRT: Generating relay stubs for libc forwards/varargs
Hallo, in msvcrt a lot of functions are of type vararg (e.g. printf) or are forwards into the Linux libc (e.g. strstr) and so leave no trace in a +relay log. This makes it harder to debug. I think it would be helpfull, if we could generate debug stubs for these functions. Can anybody help? Bye -- Uwe Bonnes[EMAIL PROTECTED] Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt - Tel. 06151 162516 Fax. 06151 164321 --
WineConf agenda ideas
Over the the past week or so I've harassed some folks about the agenda for WineConf. At this point there's a lot that remains to be filled in, but I need some feedback. Also, I need more ideas for presentations. Does anyone want to present something? It'd be great if someone would volunteer. I think what we're shooting for is a presentation followed by discussion all contained within about one hour. In total we'll have 10 - 12 different topics. Here's the items that are definitely going to be on the agenda: WRS intro Keynote - Alexandre Road to .9 and 1.0 - Dimi ReactOS update - all the ReactOS guys Wine / networking / Samba issues - Juan Lang We've also got some other items, but I need feedback as to whether any of you find this stuff interesting. (So reply and tell me if any of these items sound interesting.) Windows authentication - Andrew Bartlett (um.. haven't asked him yet though) Something else Samba related? - Samba guys Commercial port of a Winelib app and using Wine - an enterprise user CXTest and regression testing - someone from CodeWeavers Version control - Mike Hearn wearing a fire retardant suit DCOM work - Mike or Rob DirectX update - ? Also, if you need to make hotel reservations, there's just a few weeks left to do that. Check out the WineConf page for details: http://www.winehq.org/site/wineconf As people begin to figure out travel plans, the wineconf mailing list will pick up. How to join: http://www.winehq.org/mailman/listinfo/wineconf Let me know if you have any questions. -Brian
Re: Microsoft admits targeting Wine users
On Saturday 26 February 2005 05:03, Tom wrote: Here is the link: http://news.zdnet.co.uk/0,39020330,39189180,00.htm Sounds like a quote for the front page of the web site: [Wine is] the most popular third-party [Windows API] translation technology in use - Microsoft
While we're saying thanks, another thing that works is...
... the Neverwinter Nights Toolset. Amazingly enough, after I had followed a whole lot of very complex instructions in order to download and compile some half-ancient version of WineX (3.3.2), patch it to nwwine (which is the common name of the patched version that is supposed to get the toolset working; it's in Portage and everything), and add Registry entries and native dlls, it turned out that the toolset ran 'perfectly well' under regular old Wine 20050211 (and in fact not very well under nwwine; couldn't use the menus, etc.). My wine is all hacked together atm, so I'll have to do a clean install to see if it needs anything special other than a couple of native dlls (that it might not need, but I had installed them to the program folder for nwwine) before attempting to add it to the appdb, but it definitely works. I've added custom content to all 7 of the Original Campaign modules using it (and the game is using the content properly, so it's correctly added). Oh, and by the way, thanks for the fix of the titlebars; it's really really nice to have the same window decorations in Wine programs as on the rest of the desktop. Just noticed it today (can't believe I didn't before) and wanted to let you know I appreciate it. Holly
Re: Microsoft admits targeting Wine users
On Sat, 26 Feb 2005 05:57:16 +1100, Troy Rollo [EMAIL PROTECTED] wrote: On Saturday 26 February 2005 05:03, Tom wrote: Here is the link: http://news.zdnet.co.uk/0,39020330,39189180,00.htm Sounds like a quote for the front page of the web site: I agree. I added something similar. (Little HTML typo, but it'll be fixed in a few minutes.) -Brian
New uninstaller
As requested, I'm trying to make a new uninstaller using a dialog instead of a window. It's my first windows program and I have something working but there are still some issues. If someone could help with some of the following problems, I'd be very thanfull. 1) Strange problem with UpdateWindow uninstaller.c, line 264 I implemented a search/filter field and I want to repaint the window after each input in the EDITTEXT control. However, when I call UpdateWindow on this line, the value returned is 1 so that a WM_PAINT message should be sent right ? But strangly no message is sent and I have to make something else (like moving the dialog) to force the window to repaint and filter the entries. The funny thing is that UpdateWindow on line 279 works just fine. I guess it's a bug in my code and not in Wine so I'd be glad if you could help me. 2) Improve filter code Currently I filter the entries that match exactly the filter string. I would like to at least make a case insensitive strstr on the string. What's the best way to do it (See uninstaller.c, line 235) 3) Stringtables a)Is there a way to load localized strings without having to guess beforehand the size of the string in each language ? b)Is there a way to not call LoadString for each string ? c)Where is the best place to load every string of a stringtable ? in main(), just before calling DialogBox() ? 4) Please tell me if you see things that are bad in the attached code, so that I'll fix it before submitting a patch. Thanks you for your help uninstaller2.tar.gz Description: application/compressed-tar signature.asc Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?=
Re: using safe string functions in wine
James Hawkins [EMAIL PROTECTED] writes: What is your opinion on whether we should implement and use either the user-mode or kernel-mode (or both) string safe functions? Using these functions instead of the standard c string functions would promote consistency and security in the wine code base. On the other hand, using these functions adds another layer of calls to the code. What are other pro's and con's of using string safe functions? The main con is that these functions are not standard, and ugly as hell. Also, all they do is allow someone to write bad code without opening too many security holes; IMHO writing good code instead is a better way to achieve that. -- Alexandre Julliard [EMAIL PROTECTED]
Re: New uninstaller
Jonathan Ernst wrote: 4) Please tell me if you see things that are bad in the attached code, so that I'll fix it before submitting a patch. I think you probably want to pass a valid HINSTANCE to DialogBox, to do this you should start your program with WinMain() instead of main(). Ivan.
status of winetest.exe
Hello Paul, i have noticed that the winetest are not longer built since the middle of the week. Can you take a look if something is broken? Thanks Stefan
Re: setupapi: enumerate serial ports
--- Alexandre Julliard [EMAIL PROTECTED] wrote: +/* Based on code from winspool's info.c */ +static UINT SETUP_CountSerialPorts(void) +{ +UINT i, ret; + +/* FIXME: it should be possible for more than four COM ports to exist, not + * sure why we retain that limit, but winspool does too so go with it. + */ +for (i = 0, ret = 0; i 4; i++) +{ +if (SETUP_SerialPortExists(i)) +ret++; +} +TRACE(returning %d\n, ret); +return ret; +} It would probably be better to use QueryDosDevice here. I'm not sure it is. I just tried it, and QueryDosDevice returns success for every COMx passed to it, even though only com1 exists in my dosdevices directory. Unless QueryDosDevice is also wrong (I don't know.) --Juan __ Do you Yahoo!? Yahoo! Mail - 250MB free storage. Do more. Manage less. http://info.mail.yahoo.com/mail_250
Re: setupapi: enumerate serial ports
Juan Lang [EMAIL PROTECTED] writes: I'm not sure it is. I just tried it, and QueryDosDevice returns success for every COMx passed to it, even though only com1 exists in my dosdevices directory. Unless QueryDosDevice is also wrong (I don't know.) You don't necessarily need symlinks, by default it will fallback to /dev/ttyS?. So if the corresponding ttyS? device exists QueryDosDevice will succeed, which is correct since you do have that serial port. -- Alexandre Julliard [EMAIL PROTECTED]
Re: USER32: GetScrollBarInfo
Vitaly Lipatov [EMAIL PROTECTED] writes: +static BOOL SCROLL_GetScrollBarInfo(HWND hwnd, LONG idObject, LPSCROLLBARINFO psbi) +{ +RECT rect; +INT arrowSize, thumbSize, thumbPos, nBar, vertical; +FIXME(check me); This doesn't sound very encouraging... -- Alexandre Julliard [EMAIL PROTECTED]
Re: How do native win32 apps end up calling into x11drv?
On Fri, 25 Feb 2005 11:00:59 -0500, Adam Connell wrote: I'm trying to understand how windows drawing gets translated into X in wine and so I was looking at the {im,ex}ports of x11drv and gdi32. x11drv depends on gdi32 and just seems to export a good chunk of the api that gdi32 exports (BitBlt etc). gdi32 doesn't depend on x11drv or even Xlib. How do native win32 apps end up calling into x11drv? Well, the x11drv is built like a graphics driver would be in real windows. It's loaded in dlls/user/user_main.c, and then the USER and GDI driver table is filled via GetProcAddress. The USER/GDI calls then delegate to the x11drv via these function pointers when necessary. thanks -mike
Re: New uninstaller
Jonathan Ernst wrote: As requested, I'm trying to make a new uninstaller using a dialog instead of a window. It's my first windows program and I have something working but there are still some issues. If someone could help with some of the following problems, I'd be very thanfull. Cool. Some comments: The dialog box procedure should not handle WM_PAINT or WM_CLOSE, so just delete those cases from the switch statement. Don't send WM_SETFONT messages to the controls in the dialog. Let the dialog template define what the dialog looks like. Your WM_INITDIALOG handler should fill the listbox, not WM_PAINT. You can remove the No items selected message if uninstall is clicked without a listbox element select. That's just going to annoy people, and it's not internationalized. Mike
Build on Fedora core 3 on AMD64
I am having trouble getting wine (latest CVS) to build on my AMD64 box runngin Fedora core3, and I was hoping some autoconf wizard might be able to help. To begin at the beginning, the issue that occurs during build is: gcc -m32 -c -I. -I. -I../../include -I../../include -I/usr/X11R6/include -D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe -mpreferred-stack- boundary=2 -fno-strict-aliasing -gstabs+ -Wpointer-arith -g -O2 -o ddraw.dll.dbg.o ddraw.dll.dbg.c .../../tools/winegcc/winegcc -B../../tools/winebuild -shared ./ddraw.spec convert.o dclipper/main.o ddraw/hal.o ddraw/main.o ddraw/thunks.o ddraw/user.o dpalette/hal.o dpalette/main.o dsurface/dib.o dsurface/fakezbuffer.o dsurface/gamma.o dsurface/hal.o dsurface/main.o dsurface/thunks.o dsurface/user.o dsurface/wndproc.o helper.o main.o regsvr.o struct_convert.o ddraw.dll.dbg.o version.res -o ddraw.dll.so -L../../dlls -lole32 -luser32 -lgdi32 -ladvapi32 -lkernel32 - L../../libs/wine -lwine -ldxguid -luuid -L/usr/X11R6/lib64 -lXext - lX11 -L../../libs/port -lwine_port /usr/bin/ld: skipping incompatible /usr/X11R6/lib64/libXext.so when searching for -lXext /usr/bin/ld: skipping incompatible /usr/X11R6/lib64/libXext.a when searching for -lXext /usr/bin/ld: cannot find -lXext collect2: ld returned 1 exit status winegcc: gcc failed. make[2]: *** [ddraw.dll.so] Error 2 make[2]: Leaving directory `/home/adrian/wine/dlls/ddraw' make[1]: *** [ddraw] Error 2 make[1]: Leaving directory `/home/adrian/wine/dlls' make: *** [dlls] Error 2 So it seems that ld is finding the 64-bit version and failing to link it. It seems that the reason for this is that configure uses xmkmf/imake to locate the X11 library directory and that this is always returning the .../lib64 version. I have split out the Imakefile that configure generates, and tried various methods to prevent it seeing the system as 64 bit and handing out the lib64 directory instead of the lib one, but to no avail. running: setarch i386 imake -v -DUseInstalled -I/usr/X11R6/lib/X11/config (to emulate an xmkmf, but with verbosity, which xmkmf doesn't do) gives: gcc -I. -D__amd64__ -D__amd64__ -traditional -Dlinux -DUseInstalled - I/usr/X11R6/lib/X11/config -E -v Imakefile.c Reading specs from /usr/lib/gcc/x86_64-redhat-linux/3.4.2/specs Configured with: ../configure --prefix=/usr --mandir=/usr/share/man -- infodir=/usr/share/info --enable-shared --enable-threads=posix -- disable-checking --with-system-zlib --enable-__cxa_atexit --disable- libunwind-exceptions --enable-languages=c,c++,objc,java,f77 --enable- java-awt=gtk --host=x86_64-redhat-linux Thread model: posix gcc version 3.4.2 20041017 (Red Hat 3.4.2-6.fc3) /usr/libexec/gcc/x86_64-redhat-linux/3.4.2/cc1 -E -traditional-cpp - quiet -v -I. -I/usr/X11R6/lib/X11/config -D__amd64__ -D__amd64__ -Dlinux -DUseInstalled Imakefile.c -mtune=k8 ignoring nonexistent directory /usr/lib/gcc/x86_64-redhat- linux/3.4.2/../../../../x86_64-redhat-linux/include #include ... search starts here: #include ... search starts here: . /usr/X11R6/lib/X11/config /usr/local/include /usr/lib/gcc/x86_64-redhat-linux/3.4.2/include /usr/include End of search list. I can see that gcc is being passed -D__amd64__ but I can't trace where this is coming from... Am I hunting on the right lines, or is there somthing much simpler I have missed? Also, what do we need to change in the autoconf stuff to allow wine to build correctly on x86_64 multi-arch systems? (assuming that it is not just my system being broken somehow) Thanks for any help, Adrian
Re: New uninstaller
Ivan Leo Puoti [EMAIL PROTECTED] wrote: Jonathan Ernst wrote: 4) Please tell me if you see things that are bad in the attached code, so that I'll fix it before submitting a patch. I think you probably want to pass a valid HINSTANCE to DialogBox, to do this you should start your program with WinMain() instead of main(). main() works just fine. GetModuleHandle(0) returns current HINSTANCE. -- Dmitry.
Re: New uninstaller
Jonathan Ernst [EMAIL PROTECTED] wrote: 1) Strange problem with UpdateWindow uninstaller.c, line 264 I implemented a search/filter field and I want to repaint the window after each input in the EDITTEXT control. However, when I call UpdateWindow on this line, the value returned is 1 so that a WM_PAINT message should be sent right ? No. UpdateWindow only sends WM_PAINT if there are invalidated areas to repaint. You need to use InvalidateRect first. Are you sure you want to repaint the whole window on each EN_CHANGE and not some small area of a dialog? But strangly no message is sent and I have to make something else (like moving the dialog) to force the window to repaint and filter the entries. The funny thing is that UpdateWindow on line 279 works just fine. I guess it's a bug in my code and not in Wine so I'd be glad if you could help me. 2) Improve filter code Currently I filter the entries that match exactly the filter string. I would like to at least make a case insensitive strstr on the string. What's the best way to do it (See uninstaller.c, line 235) Just send LB_FINDSTRING or LB_FINDSTRINGEXACT to listbox, it will do the job for you. 3) Stringtables a)Is there a way to load localized strings without having to guess beforehand the size of the string in each language ? b)Is there a way to not call LoadString for each string ? c)Where is the best place to load every string of a stringtable ? in main(), just before calling DialogBox() ? It's better to void using string tables, since now you have converted code to use dialog box instead. 4) Please tell me if you see things that are bad in the attached code, so that I'll fix it before submitting a patch. +BOOL CALLBACK DlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) BOOL - INT_PTR WM_PAINT is not needed for dialog boxes, user32 does the job. +int main(int argc, char *argv[]) +{ +MSG msg; +WNDCLASS wc; +HWND hWnd; +LPSTR token = NULL; +int i = 1; +HINSTANCE hInst = NULL; HINSTANCE hInst = GetModuleHandle(0); -- Dmitry.
Re: New uninstaller
Jonathan Ernst wrote: Ok I did it, but the listbox should be updated when the user ask to uninstall someting OR the user changes the filter string ? How can I do that using only WM_INITDIALOG ? You can get notifications from the controls that things change. For example, the edit control will send a WM_COMMAND( EN_CHANGE ) when the contents change. WM_INITDIALOG is just for setting things up. So create a function like fill_combo_box(), and call it whenever you need to update the combo box... when handling WM_COMMAND( EN_CHANGE ), WM_INITDIALOG, etc. Mike