If you are not a paid subscriber, you must have signed up for our free trial at http://www.codeoftheweek.com. Our ezine is not an unsolicited message (in other words a spam email). Keep in mind that if you signed up for our free trial you can still receive a total of four issues at no cost to you. After you receive the four issues you will be notified about continuing your subscription.
If you do not wish to continue to receive this ezine, please email us at cancel@codeoftheweek.com
The source code in this issue is designed for Visual Basic 4.0 32-bit and above.
If you have any questions about this issue, please email us at questions@codeoftheweek.com
This issue introduces a class to gather the volume information of a disk drive. It accomplishes this task by using an API call, GetVolumeInformation.
There are two properties in the cVolumeInfo class that are necessary to gather volume information. The Drive property defines the disk drive you want to gather the volume information for. An example of this would be Drive = "C" or Drive="C:". The Label property will return the Volume Label found for the Drive specified in the Drive property. If it is unable to determine the volume label it will return a blank volume label. This routine does not currently work for network volumes. A blank volume label will be returned for network volumes. If the GetVolumeInformation API returns an unhandled error, it will be passed back to the caller when the Drive property is called.
Public Property Let Drive(sDrive As String) Public Property Get Label() As String
On frmDriveType we created a ListView control called lvDrives. We also created a command button called cmdClose. This sample will scan all drives looking for volume labels
Private Sub cmdClose_Click() Unload Me End Sub Private Sub Form_Load() SetupForm ShowVolInfo End Sub Private Sub SetupForm() With lvDrives .ColumnHeaders.Add , "Drive", "Drive" .ColumnHeaders.Add , "Volume Label", "Volume Label" .Sorted = True .SortKey = 0 .View = lvwReport End With End Sub Private Sub ShowVolInfo() Dim x As Integer Dim itm As ListItem Dim sDrive As String Dim lDriveType As Long Dim sDriveTypeDesc As String lvDrives.ListItems.Clear For x = 65 To 90 ' drives A to Z sDrive = Chr$(x) Dim vol As New cVolumeInfo vol.Drive = sDrive ' only add drives that have labels If vol.Label <> "" Then Set itm = lvDrives.ListItems.Add(, sDrive, sDrive) itm.SubItems(1) = vol.Label End If Set vol = Nothing Next End Sub
To see the source code for this issue you must be a subscriber to Code of the Week. If you are a subscriber the source code is available at the following address: http://www.codeoftheweek.com/membersonly/bi/0050.html
That concludes this issue of COTW. We hope you find the source code useful in your development.
The below describes the ways you can supply us some feedback about COTW. We would like to see our members help mold COTW into the best Visual Basic source code resource available. But to do that we need your feedback about what you like and what you do not like about COTW.
If you are interested in advertising in COTW please email us at sponsor@codeoftheweek.com Our rates are VERY reasonable, actually they are almost FREE. We reach over five thousand Visual Basic developers each week.
If you have any suggestions for topics you would like to see covered or questions about this issue, please email them to info@codeoftheweek.com or use online feedback form at http://www.codeoftheweek.com/feedback.html.
If you have any source code you would like to submit for possible inclusion in COTW, please fill out our online submission form at http://www.codeoftheweek.com/submission.html.
Thank you for trying Code of the Week for Visual Basic.
Your free trial expires after you receive your fourth issue. If you want to continue to receive Code of the Week you can get 52 issues of COTW for only $19.95. This is a full year of Visual Basic source code and information to help with all your development. So don't wait, subscribe now! The quickest way to subscribe is to jump to our online order form at http://www.codeoftheweek.com/order.html