James Hawkins wrote:
+UINT msi_dialog_directorylist_up( msi_dialog *dialog ) +{
- msi_control *control;
 - BOOL indirect;
 - LPWSTR prop, path, ptr;
 - control = msi_dialog_find_control_by_class( dialog, WC_LISTVIEWW );
 - indirect = control->attributes & msidbControlAttributesIndirect;
 - prop = msi_dialog_dup_property( dialog, control->property, indirect );
 
I don't think we should be looking up controls by their Window class.
Either look up "DirectoryList" by it's MSI control type, or have the DirectoryList code subscribe to the event somehow.
+UINT msi_dialog_directorylist_up( msi_dialog *dialog );
Please put declarations for functions in a different file in msipriv.h
Mike