VirtualBox

Ignore:
Timestamp:
Mar 4, 2009 9:27:24 AM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
43712
Message:

#3551: “Main: Replace remaining collections with safe arrays”
Converted USBFilterCollection. Tested with filters in the GUI.

Location:
trunk/src/VBox/Frontends/VBoxManage
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp

    r17323 r17336  
    55
    66/*
    7  * Copyright (C) 2006-2008 Sun Microsystems, Inc.
     7 * Copyright (C) 2006-2009 Sun Microsystems, Inc.
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    11201120            RTPrintf("\nUSB Device Filters:\n\n");
    11211121
    1122         ComPtr<IUSBDeviceFilterCollection> Coll;
    1123         CHECK_ERROR_RET (USBCtl, COMGETTER(DeviceFilters)(Coll.asOutParam()), rc);
    1124 
    1125         ComPtr<IUSBDeviceFilterEnumerator> Enum;
    1126         CHECK_ERROR_RET (Coll, Enumerate(Enum.asOutParam()), rc);
    1127 
    1128         ULONG index = 0;
    1129         BOOL fMore = FALSE;
    1130         ASSERT(SUCCEEDED(rc = Enum->HasMore (&fMore)));
    1131         if (FAILED(rc))
    1132             return rc;
    1133 
    1134         if (!fMore)
     1122        SafeIfaceArray <IUSBDeviceFilter> Coll;
     1123        CHECK_ERROR_RET (USBCtl, COMGETTER(DeviceFilters)(ComSafeArrayAsOutParam(Coll)), rc);
     1124
     1125        size_t index = 0; // Also used after the "for" below.
     1126
     1127        if (Coll.size() == 0)
    11351128        {
    11361129            if (details != VMINFO_MACHINEREADABLE)
     
    11381131        }
    11391132        else
    1140         while (fMore)
    1141         {
    1142             ComPtr<IUSBDeviceFilter> DevPtr;
    1143             ASSERT(SUCCEEDED(rc = Enum->GetNext(DevPtr.asOutParam())));
    1144             if (FAILED(rc))
    1145                 return rc;
    1146 
    1147             /* Query info. */
    1148 
    1149             if (details != VMINFO_MACHINEREADABLE)
    1150                 RTPrintf("Index:            %lu\n", index);
    1151 
    1152             BOOL bActive = FALSE;
    1153             CHECK_ERROR_RET (DevPtr, COMGETTER (Active) (&bActive), rc);
    1154             if (details == VMINFO_MACHINEREADABLE)
    1155                 RTPrintf("USBFilterActive%d=\"%s\"\n", index + 1, bActive ? "on" : "off");
    1156             else
    1157                 RTPrintf("Active:           %s\n", bActive ? "yes" : "no");
    1158 
    1159             Bstr bstr;
    1160             CHECK_ERROR_RET (DevPtr, COMGETTER (Name) (bstr.asOutParam()), rc);
    1161             if (details == VMINFO_MACHINEREADABLE)
    1162                 RTPrintf("USBFilterName%d=\"%lS\"\n", index + 1, bstr.raw());
    1163             else
    1164                 RTPrintf("Name:             %lS\n", bstr.raw());
    1165             CHECK_ERROR_RET (DevPtr, COMGETTER (VendorId) (bstr.asOutParam()), rc);
    1166             if (details == VMINFO_MACHINEREADABLE)
    1167                 RTPrintf("USBFilterVendorId%d=\"%lS\"\n", index + 1, bstr.raw());
    1168             else
    1169                 RTPrintf("VendorId:         %lS\n", bstr.raw());
    1170             CHECK_ERROR_RET (DevPtr, COMGETTER (ProductId) (bstr.asOutParam()), rc);
    1171             if (details == VMINFO_MACHINEREADABLE)
    1172                 RTPrintf("USBFilterProductId%d=\"%lS\"\n", index + 1, bstr.raw());
    1173             else
    1174                 RTPrintf("ProductId:        %lS\n", bstr.raw());
    1175             CHECK_ERROR_RET (DevPtr, COMGETTER (Revision) (bstr.asOutParam()), rc);
    1176             if (details == VMINFO_MACHINEREADABLE)
    1177                 RTPrintf("USBFilterRevision%d=\"%lS\"\n", index + 1, bstr.raw());
    1178             else
    1179                 RTPrintf("Revision:         %lS\n", bstr.raw());
    1180             CHECK_ERROR_RET (DevPtr, COMGETTER (Manufacturer) (bstr.asOutParam()), rc);
    1181             if (details == VMINFO_MACHINEREADABLE)
    1182                 RTPrintf("USBFilterManufacturer%d=\"%lS\"\n", index + 1, bstr.raw());
    1183             else
    1184                 RTPrintf("Manufacturer:     %lS\n", bstr.raw());
    1185             CHECK_ERROR_RET (DevPtr, COMGETTER (Product) (bstr.asOutParam()), rc);
    1186             if (details == VMINFO_MACHINEREADABLE)
    1187                 RTPrintf("USBFilterProduct%d=\"%lS\"\n", index + 1, bstr.raw());
    1188             else
    1189                 RTPrintf("Product:          %lS\n", bstr.raw());
    1190             CHECK_ERROR_RET (DevPtr, COMGETTER (Remote) (bstr.asOutParam()), rc);
    1191             if (details == VMINFO_MACHINEREADABLE)
    1192                 RTPrintf("USBFilterRemote%d=\"%lS\"\n", index + 1, bstr.raw());
    1193             else
    1194                 RTPrintf("Remote:           %lS\n", bstr.raw());
    1195             CHECK_ERROR_RET (DevPtr, COMGETTER (SerialNumber) (bstr.asOutParam()), rc);
    1196             if (details == VMINFO_MACHINEREADABLE)
    1197                 RTPrintf("USBFilterSerialNumber%d=\"%lS\"\n", index + 1, bstr.raw());
    1198             else
    1199                 RTPrintf("Serial Number:    %lS\n", bstr.raw());
    1200             if (details != VMINFO_MACHINEREADABLE)
    1201             {
    1202                 ULONG fMaskedIfs;
    1203                 CHECK_ERROR_RET (DevPtr, COMGETTER (MaskedInterfaces) (&fMaskedIfs), rc);
    1204                 if (fMaskedIfs)
    1205                     RTPrintf("Masked Interfaces: 0x%08x\n", fMaskedIfs);
    1206                 RTPrintf("\n");
    1207             }
    1208 
    1209             ASSERT(SUCCEEDED(rc = Enum->HasMore (&fMore)));
    1210             if (FAILED(rc))
    1211                 return rc;
    1212 
    1213             index ++;
     1133        {
     1134            for (; index < Coll.size(); ++index)
     1135            {
     1136                ComPtr<IUSBDeviceFilter> DevPtr = Coll[index];
     1137
     1138                /* Query info. */
     1139
     1140                if (details != VMINFO_MACHINEREADABLE)
     1141                    RTPrintf("Index:            %zu\n", index);
     1142
     1143                BOOL bActive = FALSE;
     1144                CHECK_ERROR_RET (DevPtr, COMGETTER (Active) (&bActive), rc);
     1145                if (details == VMINFO_MACHINEREADABLE)
     1146                    RTPrintf("USBFilterActive%zu=\"%s\"\n", index + 1, bActive ? "on" : "off");
     1147                else
     1148                    RTPrintf("Active:           %s\n", bActive ? "yes" : "no");
     1149
     1150                Bstr bstr;
     1151                CHECK_ERROR_RET (DevPtr, COMGETTER (Name) (bstr.asOutParam()), rc);
     1152                if (details == VMINFO_MACHINEREADABLE)
     1153                    RTPrintf("USBFilterName%zu=\"%lS\"\n", index + 1, bstr.raw());
     1154                else
     1155                    RTPrintf("Name:             %lS\n", bstr.raw());
     1156                CHECK_ERROR_RET (DevPtr, COMGETTER (VendorId) (bstr.asOutParam()), rc);
     1157                if (details == VMINFO_MACHINEREADABLE)
     1158                    RTPrintf("USBFilterVendorId%zu=\"%lS\"\n", index + 1, bstr.raw());
     1159                else
     1160                    RTPrintf("VendorId:         %lS\n", bstr.raw());
     1161                CHECK_ERROR_RET (DevPtr, COMGETTER (ProductId) (bstr.asOutParam()), rc);
     1162                if (details == VMINFO_MACHINEREADABLE)
     1163                    RTPrintf("USBFilterProductId%zu=\"%lS\"\n", index + 1, bstr.raw());
     1164                else
     1165                    RTPrintf("ProductId:        %lS\n", bstr.raw());
     1166                CHECK_ERROR_RET (DevPtr, COMGETTER (Revision) (bstr.asOutParam()), rc);
     1167                if (details == VMINFO_MACHINEREADABLE)
     1168                    RTPrintf("USBFilterRevision%zu=\"%lS\"\n", index + 1, bstr.raw());
     1169                else
     1170                    RTPrintf("Revision:         %lS\n", bstr.raw());
     1171                CHECK_ERROR_RET (DevPtr, COMGETTER (Manufacturer) (bstr.asOutParam()), rc);
     1172                if (details == VMINFO_MACHINEREADABLE)
     1173                    RTPrintf("USBFilterManufacturer%zu=\"%lS\"\n", index + 1, bstr.raw());
     1174                else
     1175                    RTPrintf("Manufacturer:     %lS\n", bstr.raw());
     1176                CHECK_ERROR_RET (DevPtr, COMGETTER (Product) (bstr.asOutParam()), rc);
     1177                if (details == VMINFO_MACHINEREADABLE)
     1178                    RTPrintf("USBFilterProduct%zu=\"%lS\"\n", index + 1, bstr.raw());
     1179                else
     1180                    RTPrintf("Product:          %lS\n", bstr.raw());
     1181                CHECK_ERROR_RET (DevPtr, COMGETTER (Remote) (bstr.asOutParam()), rc);
     1182                if (details == VMINFO_MACHINEREADABLE)
     1183                    RTPrintf("USBFilterRemote%zu=\"%lS\"\n", index + 1, bstr.raw());
     1184                else
     1185                    RTPrintf("Remote:           %lS\n", bstr.raw());
     1186                CHECK_ERROR_RET (DevPtr, COMGETTER (SerialNumber) (bstr.asOutParam()), rc);
     1187                if (details == VMINFO_MACHINEREADABLE)
     1188                    RTPrintf("USBFilterSerialNumber%zu=\"%lS\"\n", index + 1, bstr.raw());
     1189                else
     1190                    RTPrintf("Serial Number:    %lS\n", bstr.raw());
     1191                if (details != VMINFO_MACHINEREADABLE)
     1192                {
     1193                    ULONG fMaskedIfs;
     1194                    CHECK_ERROR_RET (DevPtr, COMGETTER (MaskedInterfaces) (&fMaskedIfs), rc);
     1195                    if (fMaskedIfs)
     1196                        RTPrintf("Masked Interfaces: 0x%08x\n", fMaskedIfs);
     1197                    RTPrintf("\n");
     1198                }
     1199            }
    12141200        }
    12151201
     
    19621948
    19631949#endif /* !VBOX_ONLY_DOCS */
    1964 
     1950/* vi: set tabstop=4 shiftwidth=4 expandtab: */
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageUSB.cpp

    r17104 r17336  
    499499            else
    500500            {
    501                 ComPtr <IUSBDeviceFilterCollection> coll;
    502                 CHECK_ERROR_BREAK (ctl, COMGETTER(DeviceFilters) (coll.asOutParam()));
    503 
    504                 ComPtr <IUSBDeviceFilter> flt;
    505                 CHECK_ERROR_BREAK (coll, GetItemAt (cmd.mIndex, flt.asOutParam()));
     501                SafeIfaceArray <IUSBDeviceFilter> coll;
     502                CHECK_ERROR_BREAK (ctl, COMGETTER(DeviceFilters) (ComSafeArrayAsOutParam(coll)));
     503
     504                ComPtr <IUSBDeviceFilter> flt = coll[cmd.mIndex];
    506505
    507506                if (!f.mName.isNull())
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette