Hi All,
If anybody is looking for a small project, I've got just the thing for you!
hh.exe and hhctrl.ocx are two components of the Microsoft HTML help
engine. hh.exe is a small wrapper around hhctrl.ocx, which is the HTML
help viewer.
hhctrl.ocx embeds IE and feeds it HTML documents decoded from .chm files
with itss.dll (the Infotech storage system). Implementing hhctrl.ocx
would make an excellent test case for IE embedding that Jacek is working
on, and for itss.dll.
So most of the components are already in place (or will be soon) to make
HTML help work... any takers to fill in the dots?
The reward is, like most of Wine code, to say "I made that work" :)
Let me know if you're interested.
Mike
I recently downloaded Wine-20050628 (self contained install with fake
Windows drive) and tried to use the aviplay program in programs/avitools
directory. However, this program fails with this odd error trace:
[bash$] WINEDEBUG=shell,ole wine
~/temp/wine/wine-20050628-patch/programs/aviplay.exe.so blur24.avi
...
trace:shell:SIC_IconAppend L"c:\\windows\\system\\shell32.dll" 37 0x1126
0x112e
trace:shell:SHAlloc 20 bytes at 0x65f43068
trace:shell:SIC_IconAppend L"c:\\windows\\system\\shell32.dll" -38
0x1126 0x112e
trace:shell:SHAlloc 20 bytes at 0x65f430d0
trace:shell:SIC_Initialize hIconSmall=0x65f2f5e0 hIconBig=0x65f31190
fixme:avifile:AVIFileInit (): stub!
trace:shell:HCR_RegOpenClassIDKey
CLSID\{00020020-0000-0000-c000-000000000046}
trace:shell:HCR_GetClassNameA --
trace:shell:HCR_RegOpenClassIDKey
CLSID\{00020000-0000-0000-c000-000000000046}
trace:shell:HCR_GetClassNameA -- Microsoft AVI Files
trace:shell:SHCoCreateInstance ((nil),
{00020000-0000-0000-c000-000000000046} (Microsoft AVI
Files),unk:(nil),
{00020020-0000-0000-c000-000000000046} (unknown),0x65cbf8fc)
trace:shell:SHQueryValueExW
(hkey=0x64,(null),(nil),(nil),0x65cbf338,0x65cbf330=520)
trace:shell:SHQueryValueExW
(hkey=0x64,L"LoadWithoutCOM",(nil),(nil),(nil),(nil)=0)
trace:shell:PathFindFileNameW (L"avifil32.dll")
trace:shell:SHCoCreateInstance WithoutCom=0 FromShell=0
trace:shell:HCR_RegOpenClassIDKey
CLSID\{00020020-0000-0000-c000-000000000046}
trace:shell:HCR_GetClassNameA --
trace:shell:HCR_RegOpenClassIDKey
CLSID\{00020000-0000-0000-c000-000000000046}
trace:shell:HCR_GetClassNameA -- Microsoft AVI Files
err:shell:SHCoCreateInstance failed (0x800401f0) to create CLSID:
{00020000-0000-0000-c000-000000000046} (Microsoft AVI Files) IID:
{00020020-0000-0000-c000-000000000046} (unknown)
err:shell:SHCoCreateInstance class not found in registry
trace:shell:SHCoCreateInstance -- instance: (nil)
AVIFileOpen: 0x800401f0
I looked up in the include files, and the value of 0x800410f0 is
CO_E_NOTINITIALIZED. This is confirmed by a check in the source code
that indicates that the apartment was not initialized (please correct me
if I get the terminology wrong). The code for aviplay and aviinfo does
not attempt to initialize any apartment prior to calling AVIFileOpen
with /pclsidHandler/ set to NULL. I looked up in MSDN, and the
documentation for AVIFileOpen does not suggest (to me at least), that an
apartment should be initialized by the caller. This seems odd, since
this means that the program should never have worked in the first place,
yet the comments in the source suggest that it worked at least once.
Are these avitools maintained? If so, does this result from a
misconfiguration (the same one in two different machines so far), or
from a genuine incomplete implementation? I would like to hear any
comment on this. The original purpose of messing with aviplay was to
test whether the Indeo video codecs are actually usable after being
installed under Wine, but this problems affects even files not encoded
with Indeo.
Alex Villacís Lasso
Jacek Caban <jack(a)itma.pwr.wroc.pl> writes:
> This patch depends on my patch to wrc. Alexandre,
> I discovered why the test didn't fail for me. There is
> a bug in Wine that causes loading of the native dll instead
> of builtin when you load it as a data file, so I tested the
> builtin dll with native resources.
That's a feature ;-) We can't support loading builtins as datafiles,
so the idea is that it's more likely that the app will be happy with
loading the native as datafile than loading the builtin in normal
mode. It does make the behavior a bit surprising I agree.
--
Alexandre Julliard
julliard(a)winehq.org
Hi,
Has anyone managed to get sony's station
(http://www.station.sony.com/en/) past the file scan?
___________________________________________________________
Yahoo! Messenger - NEW crystal clear PC to PC calling worldwide with voicemail http://uk.messenger.yahoo.com
>> ChangeLog: Fix bug that left mouse buttons swapped after tests
>>
>> Ivan.
>
> I think your patch causes test to fail on Wine, Ivan. My try goes next.
>
>
> ChangeLog:
> Saulius Krasuckas <saulius.krasuckas(a)ieee.org>
> - Break from the loop to restore SM_SWAPBUTTON metrics.
> - SetLastError() to see if restoration changes it.
>
>
> Index: dlls/user/tests/sysparams.c
> ===================================================================
> RCS file: /home/wine/wine/dlls/user/tests/sysparams.c,v
> retrieving revision 1.38
> diff -p -u -r1.38 sysparams.c
> --- dlls/user/tests/sysparams.c 20 Jun 2005 15:36:17 -0000 1.38
> +++ dlls/user/tests/sysparams.c 30 Jun 2005 07:36:40 -0000
> @@ -1011,7 +1011,7 @@ static void test_SPI_SETMOUSEBUTTONSWAP(
> rc=SystemParametersInfoA( SPI_SETMOUSEBUTTONSWAP, vals[i], 0,
> SPIF_UPDATEINIFILE | SPIF_SENDCHANGE );
> if (!test_error_msg(rc!=vals[i],"SPI_{GET,SET}MOUSEBUTTONSWAP"))
> - return;
> + break;
It's nice to break but the the end-result will be that the test fails on
all windows versions I could my hands on and that the previous setting is
restored. Not very useful it seams.
Cheers,
Paul.
Lately I'm seeing a lot of deadlocks in wine's sound system. Most notably
winealsa. But the code in question affects all (in my case oss since it's
working better for me then others).
I'm not sure what exactly happens (deadlock because of race condition or else)
but code bellow deadlocks with other heap functions (like GetHeap). Removing
HeapValidate didn't cause any problems for as of yet. And I haven't seen a
single deadlock here at all.
Is there are reasons we perform this heap validation here? Could someone comment
on this?
If someone interested I could reproduce backtrace of the deadlock.
--
Best regards,
Vitaliy
Index: dlls/winmm/lolvldrv.c
===================================================================
RCS file: /home/wine/wine/dlls/winmm/lolvldrv.c,v
retrieving revision 1.68
diff -u -p -r1.68 lolvldrv.c
--- dlls/winmm/lolvldrv.c 22 Jun 2005 11:59:43 -0000 1.68
+++ dlls/winmm/lolvldrv.c 29 Jun 2005 14:54:42 -0000
@@ -441,7 +441,7 @@ LPWINE_MLD MMDRV_Get(HANDLE _hndl, UINT
hndl = hndl & ~0x8000;
if (hndl < sizeof(MM_MLDrvs) / sizeof(MM_MLDrvs[0])) {
mld = MM_MLDrvs[hndl];
- if (!mld || !HeapValidate(GetProcessHeap(), 0, mld) || mld->type != type)
+ if (!mld || mld->type != type)
mld = NULL;
}
hndl = hndl | 0x8000;
Hallo (Michael?),
File Open Dialogs for me have some noticable initial delay when starting
up. For example, try in internet explorer "Save under". I don't remember
seeing that delay some time before. Dif recent shfolder changes cause that
delay?
Bye
--
Uwe Bonnes bon(a)elektron.ikp.physik.tu-darmstadt.de
Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
Saulius Krasuckas wrote:
>>ChangeLog: Fix bug that left mouse buttons swapped after tests
>>
>>Ivan.
>
>
> I think your patch causes test to fail on Wine, Ivan. My try goes next.
Maybe that isn't a bad thing, the results from the latest build of winetest shows this test fails
on windows 2000, windows nt, windows me, and windows 98se, so I somewhat doubt the wine behaviour is
correct.
Ivan.
---------- Forwarded message ----------
From: Vijay Kiran Kamuju <infyquest(a)gmail.com>
Date: Jun 30, 2005 3:42 PM
Subject: Re: Anybody looking for a pet Wine project?
To: Mike McCormack <mike(a)codeweavers.com>
typelib info of hhctrl.ocx of winxp (used pe explorer)
--------------------------------------------------------------------------
//HHCtrl 4.0 Type Library
//Version: 4.0
HHCTRLLib;
GUID = {ADB880A2-D8FF-11CF-9377-00AA003B7A11};
//Event interface for HHCtrl
Dispatch _HHCtrlEvents;
GUID = {ADB880A3-D8FF-11CF-9377-00AA003B7A11};
function Click(out ParamString: BSTR); stdcall;
//HHCtrl Class
CoClass HHCtrl;
GUID = {52A2AAAE-085D-4187-97EA-8C30DB990436};
//IHHCtrl Interface
Dispatch IHHCtrl;
GUID = {ADB880A1-D8FF-11CF-9377-00AA003B7A11};
function QueryInterface(riid: ^GUID; out ppvObj: ^^VOID); stdcall;
function AddRef: UI4; stdcall;
function Release: UI4; stdcall;
function GetTypeInfoCount(out pctinfo: ^UINT); stdcall;
function GetTypeInfo(itinfo: UINT; lcid: UI4; out pptinfo: ^^VOID); stdcall;
function GetIDsOfNames(riid: ^GUID; rgszNames: ^^I1; cNames: UINT;
lcid: UI4; out rgdispid: ^I4); stdcall;
function Invoke(dispidMember: I4; riid: ^GUID; lcid: UI4; wFlags:
UI2; pdispparams: ^DISPPARAMS; out pvarResult: ^Variant; out
pexcepinfo: ^EXCEPINFO; out puArgErr: ^UINT); stdcall;
property-put Image(: BSTR); stdcall;
property-get Image: BSTR; stdcall;
//Click method
function Click; stdcall;
//Click method
function HHClick; stdcall;
//Print method
function Print; stdcall;
//syncURL method
function syncURL(out pszUrl: BSTR); stdcall;
//TCard method
function TCard(out wParam: UINT_PTR; out lParam: LONG_PTR); stdcall;
//Text Popup method
function TextPopup(out pszText: BSTR; out pszFont: BSTR; out
horzMargins: INT; out vertMargins: INT; out clrForeground: UI4; out
clrBackground: UI4); stdcall;
Alias UINT_PTR;
UI4
Alias LONG_PTR;
I4
//Deprecated HHCtrl Class 2
CoClass OldHHCtrl2;
GUID = {41B23C28-488E-4E5C-ACE2-BB0BBABE99E8};
//Deprecated HHCtrl Class 1
CoClass OldHHCtrl1;
GUID = {ADB880A6-D8FF-11CF-9377-00AA003B7A11};
On 6/30/05, Mike McCormack <mike(a)codeweavers.com> wrote:
>
> Hi All,
>
> If anybody is looking for a small project, I've got just the thing for you!
>
> hh.exe and hhctrl.ocx are two components of the Microsoft HTML help
> engine. hh.exe is a small wrapper around hhctrl.ocx, which is the HTML
> help viewer.
>
> hhctrl.ocx embeds IE and feeds it HTML documents decoded from .chm files
> with itss.dll (the Infotech storage system). Implementing hhctrl.ocx
> would make an excellent test case for IE embedding that Jacek is working
> on, and for itss.dll.
>
> So most of the components are already in place (or will be soon) to make
> HTML help work... any takers to fill in the dots?
>
> The reward is, like most of Wine code, to say "I made that work" :)
>
> Let me know if you're interested.
>
> Mike
>
>
>