[RESENT]: Fixed winedbg example configuration
Jon Bright
jon at siliconcircus.com
Fri Jul 18 03:01:32 CDT 2003
Marcus Meissner wrote:
>
> Please give more details on that bug.
I'll go one better. Attached is a test case. In Windows, RegEnumValue
returns the keys in the order they were created in. Wine will, of
course, reorder them. Shachar mentions newer versions of Explorer
depend on Windows behaviour - I don't know about that, but I do know
that the Tool palette in Borland C++Builder 5 appears in the wrong order
because it depends on the keys not being reordered.
The test case runs on WinXP without error. Since apps depend on this
behaviour, I'm assuming it's not windows-version dependent.
--
Jon Bright
Lead Programmer, Silicon Circus Ltd.
http://www.siliconcircus.com
-------------- next part --------------
//---------------------------------------------------------------------------
#include <windows.h>
#include <stdio.h>
#pragma hdrstop
//---------------------------------------------------------------------------
int fail(char *stage)
{
printf("FAILED: %s\n",stage);
return -1;
}
#pragma argsused
int main(int argc, char* argv[])
{
HKEY software, wine, regorder;
char name[2];
DWORD i,nsize,type,ri,risize,disp;
if (RegCreateKeyEx(HKEY_CURRENT_USER,"Software",0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&software,&disp)!=ERROR_SUCCESS)
return fail("Create-Software");
if (RegCreateKeyEx(software,"Wine",0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&wine,&disp)!=ERROR_SUCCESS)
return fail("Create-Wine");
if (RegCreateKeyEx(wine,"TestRegOrder",0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,®order,&disp)!=ERROR_SUCCESS)
return fail("Create-TestRegOrder");
name[1]='\0';
for (i=26; i; i--)
{
name[0]='A'+i-1;
if (RegSetValueEx(regorder,name,0,REG_DWORD,(BYTE*)&i,sizeof(i))!=ERROR_SUCCESS)
return fail("SetValueEx");
}
for (i=0; i<26; i++)
{
nsize = 2;
risize = sizeof(ri);
if (RegEnumValue(regorder,i,name,&nsize,NULL,&type,(BYTE*)&ri,&risize)!=ERROR_SUCCESS)
return fail("EnumValue");
printf("%s = %d\n",name,ri);
if (ri!=26-i)
return fail("Comparison");
}
if (RegCloseKey(regorder)!=ERROR_SUCCESS)
return fail("CloseKey");
if (RegDeleteKey(wine,"TestRegOrder")!=ERROR_SUCCESS)
return fail("DeleteKey");
return 0;
}
//---------------------------------------------------------------------------
More information about the wine-devel
mailing list