public void Refresh()
                {
                    if (_refs == null)
                    {
                        _refs = new ArrayList();
                    }
                    else
                    {
                        _refs.Clear();
                    }

                    Fusion.IInstallReferenceEnum refEnum;

                    ComUtil.ComCheck(Fusion.CreateInstallReferenceEnum(out refEnum, _name._name, 0, IntPtr.Zero));

                    Fusion.IInstallReferenceItem item;

                    while (ComUtil.SUCCEEDED(refEnum.GetNextInstallReferenceItem(out item, 0, IntPtr.Zero)) && item != null)
                    {
                        IntPtr pRef;

                        ComUtil.ComCheck(item.GetReference(out pRef, 0, IntPtr.Zero));

                        Fusion.FUSION_INSTALL_REFERENCE objRef = (Fusion.FUSION_INSTALL_REFERENCE)
                                                                 Marshal.PtrToStructure(pRef, typeof(Fusion.FUSION_INSTALL_REFERENCE));

                        _refs.Add(new InstallReference(objRef));
                    }
                }
 public InstallReference(Fusion.FUSION_INSTALL_REFERENCE refItem)
 {
     _scheme     = refItem.guidScheme;
     _identifier = refItem.szIdentifier;
     _data       = refItem.szNonCannonicalData;
 }