Yes, something very much like that. Assuming authentication is a callback as 
well then it does seem that download and authentication need their own void 
pointer contexts (or share a single context which may be okay... just means the 
caller maybe has to put more in their context struct).

Are any of those parameters optional? Seems at least the context and maybe the 
authentication routine could be NULL. In that case, use "__in_opt" as the 
annotation.

Very exciting to see some new faces doing some bigger work in the WiX toolset. 
<smile/>

From: Blair Murri [mailto:os...@live.com]
Sent: Saturday, October 19, 2013 8:07 AM
To: WiX toolset developer mailing list
Subject: Re: [WiX-devs] RFC: Download functionality

Is pAuthenticationContext passed to pAuthentication, to pCallback, or to both?

Disclaimer, I have not looked in the sources to see how the current 
download/authentication is being handled in the engine.

________________________________
From: jacob.hoo...@greenheck.com<mailto:jacob.hoo...@greenheck.com>
To: wix-devs@lists.sourceforge.net<mailto:wix-devs@lists.sourceforge.net>
Date: Sat, 19 Oct 2013 15:00:46 +0000
Subject: Re: [WiX-devs] RFC: Download functionality
Something more along the lines of?

HRESULT DAPI WininetDownloadUrl(
    __in DOWNLOAD_SOURCE* pDownloadSource,
    __in DWORD64 dw64AuthoredDownloadSize,
    __in LPCWSTR wzDestinationPath
    __in DOWNLOAD_CACHE_CALLBACK* pCallback,
    __in LPAUTHENTICATION_ROUTINE pAuthentication,
    __in LPVOID pAuthenticationContext,
    );

And I got around the bundle version by simply reading the variable from the 
engine.

From: Rob Mensching [mailto:r...@robmensching.com]
Sent: Saturday, October 19, 2013 1:40 AM
To: WiX toolset developer mailing list
Subject: Re: [WiX-devs] RFC: Download functionality

1.       We use "pContext" pointers regularly to allow the provider of a 
callback to pass itself data. I would probably reorder arguments to that 
function a bit but totally looks reasonable to me.
2.       Yes, the UX manifest is hidden away and we duplicate stuff in the 
BootstrapperApplicationData.xml. We do this so we can optimize (i.e. radically 
change) it and only the Burn engine needs updating (for example, it could 
become a binary blob). The BootstrapperApplicationData.xml should be documented 
(probably isn't <sigh/>) and can be extended as we see fit.

From: Hoover, Jacob [mailto:jacob.hoo...@greenheck.com]
Sent: Friday, October 18, 2013 3:51 PM
To: WiX toolset developer mailing list
Subject: Re: [WiX-devs] RFC: Download functionality

Hmm, I was able to gut it out of the engine and put it into dutil. I haven't 
pushed yet, but was wondering about the general feeling of passing untyped 
pointers was.

Ex:

HRESULT DAPI WininetDownloadUrl(
    __in LPVOID pData,
    __in LPAUTHENTICATION_ROUTINE pAuthentication,
    __in DOWNLOAD_CACHE_CALLBACK* pCallback,
    __in DOWNLOAD_SOURCE* pDownloadSource,
    __in DWORD64 dw64AuthoredDownloadSize,
    __in LPCWSTR wzDestinationPath
    );

The reason for the untyped pointer was the only thing that really cared about 
it was the Authentication callback, so I abstracted that away and I'm allowing 
the caller to define what context he needs for authentication. This allows the 
engine to pass a pointer a struct containing the UX, and other IDs, while a BAF 
can pass the information it cares about (and each have their own independent 
auth routine). I also moved the structs needed and renamed them to not be burn 
specific, and used typedefs in the engine to allow the BURN_* types to function.

With this setup, I am 99% of the way there where the engine changes originally 
committed have been ported to a BAF. My final hold up is finding a clean way to 
get the bundle version from the UX manifest. Was it an intentional decision to 
not expose the UX manifest to the BA?



From: Hoover, Jacob [mailto:jacob.hoo...@greenheck.com]
Sent: Thursday, October 17, 2013 1:21 PM
To: Windows Installer XML toolset developer mailing list
Subject: [WiX-devs] RFC: Download functionality

After today's triage, I'm looking to start a discussion on migrating the burn 
engine's download functionality to balutil so that BA's can utilize the same 
code without having to go through the engine.

After a speedy review, it looks like the amount of engine specific hooks is 
limited to the UX window handle and an on error callback. If it is that simple 
I may try migrating this myself.

Thanks,
Jacob


------------------------------------------------------------------------------ 
October Webinars: Code for Performance Free Intel webinars can help you 
accelerate application performance. Explore tips for MPI, OpenMP, advanced 
profiling, and more. Get the most from the latest Intel processors and 
coprocessors. See abstracts and register > 
http://pubads.g.doubleclick.net/gampad/clk?id=60135031&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
------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60135031&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