I can, though it seems to me that this may be a bit of a grey area.  The 
comment in the doc link I provided states: [This structure contains information 
required by the Extract function, which is not supported. This documentation is 
provided for informational purposes only.]

PS, I had commented on your comments on my pull request.

From: Rob Mensching [mailto:r...@robmensching.com]
Sent: Wednesday, July 24, 2013 2:15 PM
To: Windows Installer XML toolset developer mailing list
Subject: Re: [WiX-devs] Error 0x80004005 when extracting container

Yes. That's why I asked a bug to be opened. First check-in would be to add 
better error reporting in that code. Second check-in would hopefully fix the 
bug...

Want to take a shot at the first step?

On Wed, Jul 24, 2013 at 10:44 AM, Hoover, Jacob 
<jacob.hoo...@greenheck.com<mailto:jacob.hoo...@greenheck.com>> wrote:
Rob,
  I know you were probably going to look at the logs but I had an initial pass 
at it and wanted to pass along some thoughts.  From the 3.7 code base,
    // create FDI context
    hfdi = ::FDICreate(CabAlloc, CabFree, CabOpen, CabRead, CabWrite, CabClose, 
CabSeek, cpuUNKNOWN, &erf);
    ExitOnNull(hfdi, hr, E_FAIL, "Failed to initialize cabinet.dll.");
    // begin CAB extraction
    if (!::FDICopy(hfdi, "dummy", "", 0, CabNotifyCallback, NULL, NULL) || 
erf.fError)
    {
        hr = pContext->Cabinet.hrError;
        if (E_ABORT == hr || E_NOMOREITEMS == hr)
        {
            ExitFunction();
        }
        else if (SUCCEEDED(hr))
        {
            if (ERROR_SUCCESS != erf.erfType)
            {
                hr = HRESULT_FROM_WIN32(erf.erfType);
            }
            else
            {
                hr = E_FAIL;
            }
        }
        ExitOnFailure(hr, "Failed to extract all files from container.");
    }


If it were me, wouldn’t it make more sense to at least log the values of the 
ERF struct?  From 
http://msdn.microsoft.com/en-us/library/bb432257(v=vs.85).aspx it seems that we 
could look at the erf.fError flag, and if set we could dump some useful info 
from erf.erfOper (and erf.erfType in case any of the callbacks had set the 
Cabinet.hrError to E_FAIL).



Thanks,
Jacob


------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
WiX-devs mailing list
WiX-devs@lists.sourceforge.net<mailto:WiX-devs@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/wix-devs

------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
WiX-devs mailing list
WiX-devs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-devs

Reply via email to